diff options
Diffstat (limited to 'cores')
| -rw-r--r-- | cores/arduino/new.cpp | 12 | ||||
| -rw-r--r-- | cores/arduino/new.h | 4 | 
2 files changed, 14 insertions, 2 deletions
| diff --git a/cores/arduino/new.cpp b/cores/arduino/new.cpp index 0f6d422..b81031e 100644 --- a/cores/arduino/new.cpp +++ b/cores/arduino/new.cpp @@ -5,10 +5,20 @@ void * operator new(size_t size)    return malloc(size);  } +void * operator new[](size_t size) +{ +  return malloc(size); +} +  void operator delete(void * ptr)  {    free(ptr); -}  +} + +void operator delete[](void * ptr) +{ +  free(ptr); +}  int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);};  void __cxa_guard_release (__guard *g) {*(char *)g = 1;}; diff --git a/cores/arduino/new.h b/cores/arduino/new.h index cd940ce..991c86c 100644 --- a/cores/arduino/new.h +++ b/cores/arduino/new.h @@ -8,7 +8,9 @@  #include <stdlib.h>  void * operator new(size_t size); -void operator delete(void * ptr);  +void * operator new[](size_t size); +void operator delete(void * ptr); +void operator delete[](void * ptr);  __extension__ typedef int __guard __attribute__((mode (__DI__))); | 
