|
|
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.