summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoranonymous <local@localhost>2010-08-25 16:20:04 +0700
committeranonymous <local@localhost>2010-08-25 16:20:04 +0700
commit5dba426b4ca83f783a1487c5684f6a84351d4686 (patch)
treeb68fe3c5f74d4260f53a0849b287efff3f9c0246 /src
parent0169444661bd944e7d3338372ee85b03a1be1e94 (diff)
downloadlibcxxrt-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.cc15
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);
+}
+
+