|
|
1.1 ! root 1: /****************************************************************************** ! 2: * Copyright (c) 2004, 2008 IBM Corporation ! 3: * All rights reserved. ! 4: * This program and the accompanying materials ! 5: * are made available under the terms of the BSD License ! 6: * which accompanies this distribution, and is available at ! 7: * http://www.opensource.org/licenses/bsd-license.php ! 8: * ! 9: * Contributors: ! 10: * IBM Corporation - initial implementation ! 11: *****************************************************************************/ ! 12: ! 13: ! 14: #include "stdlib.h" ! 15: #include "string.h" ! 16: #include "malloc_defs.h" ! 17: ! 18: void * ! 19: realloc(void *ptr, size_t size) ! 20: { ! 21: struct chunk *header; ! 22: char *newptr, *start; ! 23: ! 24: header = (struct chunk *) ptr; ! 25: header--; ! 26: ! 27: if (size <= header->length) ! 28: return ptr; ! 29: ! 30: newptr = (char *) malloc(size); ! 31: if (newptr == NULL) ! 32: return 0; ! 33: ! 34: start = newptr; ! 35: memcpy((void *) newptr, (const void *) ptr, header->length); ! 36: ! 37: header->inuse = 0; ! 38: ! 39: return start; ! 40: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.