equal
deleted
inserted
replaced
21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "adlc.hpp" |
25 #include "adlc.hpp" |
|
26 |
|
27 void* AllocateHeap(size_t size) { |
|
28 unsigned char* ptr = (unsigned char*) malloc(size); |
|
29 if (ptr == NULL && size != 0) { |
|
30 fprintf(stderr, "Error: Out of memory in ADLC\n"); // logging can cause crash! |
|
31 fflush(stderr); |
|
32 exit(1); |
|
33 } |
|
34 return ptr; |
|
35 } |
26 |
36 |
27 void* Chunk::operator new(size_t requested_size, size_t length) throw() { |
37 void* Chunk::operator new(size_t requested_size, size_t length) throw() { |
28 return CHeapObj::operator new(requested_size + length); |
38 return CHeapObj::operator new(requested_size + length); |
29 } |
39 } |
30 |
40 |
162 |
172 |
163 //----------------------------------------------------------------------------- |
173 //----------------------------------------------------------------------------- |
164 // CHeapObj |
174 // CHeapObj |
165 |
175 |
166 void* CHeapObj::operator new(size_t size) throw() { |
176 void* CHeapObj::operator new(size_t size) throw() { |
167 return (void *) malloc(size); |
177 return (void *) AllocateHeap(size); |
168 } |
178 } |
169 |
179 |
170 void CHeapObj::operator delete(void* p){ |
180 void CHeapObj::operator delete(void* p){ |
171 free(p); |
181 free(p); |
172 } |
182 } |