Revision cd245a19 qemu-malloc.c
b/qemu-malloc.c | ||
---|---|---|
22 | 22 |
* THE SOFTWARE. |
23 | 23 |
*/ |
24 | 24 |
#include "qemu-common.h" |
25 |
#include "trace.h" |
|
25 | 26 |
#include <stdlib.h> |
26 | 27 |
|
27 | 28 |
static void *oom_check(void *ptr) |
... | ... | |
34 | 35 |
|
35 | 36 |
void qemu_free(void *ptr) |
36 | 37 |
{ |
38 |
trace_qemu_free(ptr); |
|
37 | 39 |
free(ptr); |
38 | 40 |
} |
39 | 41 |
|
... | ... | |
48 | 50 |
|
49 | 51 |
void *qemu_malloc(size_t size) |
50 | 52 |
{ |
53 |
void *ptr; |
|
51 | 54 |
if (!size && !allow_zero_malloc()) { |
52 | 55 |
abort(); |
53 | 56 |
} |
54 |
return oom_check(malloc(size ? size : 1)); |
|
57 |
ptr = oom_check(malloc(size ? size : 1)); |
|
58 |
trace_qemu_malloc(size, ptr); |
|
59 |
return ptr; |
|
55 | 60 |
} |
56 | 61 |
|
57 | 62 |
void *qemu_realloc(void *ptr, size_t size) |
58 | 63 |
{ |
64 |
void *newptr; |
|
59 | 65 |
if (!size && !allow_zero_malloc()) { |
60 | 66 |
abort(); |
61 | 67 |
} |
62 |
return oom_check(realloc(ptr, size ? size : 1)); |
|
68 |
newptr = oom_check(realloc(ptr, size ? size : 1)); |
|
69 |
trace_qemu_realloc(ptr, size, newptr); |
|
70 |
return newptr; |
|
63 | 71 |
} |
64 | 72 |
|
65 | 73 |
void *qemu_mallocz(size_t size) |
Also available in: Unified diff