diff options
author | anonymous <local@localhost> | 2010-08-25 16:20:04 +0700 |
---|---|---|
committer | anonymous <local@localhost> | 2010-08-25 16:20:04 +0700 |
commit | 5dba426b4ca83f783a1487c5684f6a84351d4686 (patch) | |
tree | b68fe3c5f74d4260f53a0849b287efff3f9c0246 /src | |
parent | 0169444661bd944e7d3338372ee85b03a1be1e94 (diff) | |
download | libcxxrt-5dba426b4ca83f783a1487c5684f6a84351d4686.tar.gz libcxxrt-5dba426b4ca83f783a1487c5684f6a84351d4686.tar.bz2 libcxxrt-5dba426b4ca83f783a1487c5684f6a84351d4686.tar.xz |
Array new/delete operators were implemented.
Weak attribute was added for new/delete operators.
Diffstat (limited to 'src')
-rw-r--r-- | src/memory.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/memory.cc b/src/memory.cc index de4bc0c..0c4ad3b 100644 --- a/src/memory.cc +++ b/src/memory.cc @@ -7,6 +7,7 @@ #include <malloc.h> #include "stdexcept.h" +__attribute__((weak)) void * operator new(size_t size) { void * mem = malloc(size); if(mem == NULL) { @@ -17,7 +18,21 @@ void * operator new(size_t size) { } +__attribute__((weak)) void operator delete(void * ptr) { free(ptr); } + +__attribute__((weak)) +void * operator new[](size_t size) { + return ::operator new(size); +} + + +__attribute__((weak)) +void operator delete[](void * ptr) { + ::operator delete(ptr); +} + + |