Skip to content

Commit f878ad8

Browse files
committed
Add new and delete operator for array.
1 parent 111396f commit f878ad8

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

digistump-avr/cores/pro/new.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,19 @@ void * operator new(size_t size)
55
return malloc(size);
66
}
77

8+
void *operator new[](size_t size) {
9+
return malloc(size);
10+
}
11+
812
void operator delete(void * ptr)
913
{
1014
free(ptr);
1115
}
1216

17+
void operator delete[](void * ptr) {
18+
free(ptr);
19+
}
20+
1321
int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);};
1422
void __cxa_guard_release (__guard *g) {*(char *)g = 1;};
1523
void __cxa_guard_abort (__guard *) {};

digistump-avr/cores/pro/new.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
#include <stdlib.h>
99

1010
void * operator new(size_t size);
11-
void operator delete(void * ptr);
11+
void * operator new[](size_t size);
12+
void operator delete(void * ptr);
13+
void operator delete[](void * ptr);
1214

1315
__extension__ typedef int __guard __attribute__((mode (__DI__)));
1416

digistump-avr/cores/tiny/new.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,19 @@ void * operator new(size_t size)
55
return malloc(size);
66
}
77

8+
void *operator new[](size_t size) {
9+
return malloc(size);
10+
}
11+
812
void operator delete(void * ptr)
913
{
1014
free(ptr);
1115
}
1216

17+
void operator delete[](void * ptr) {
18+
free(ptr);
19+
}
20+
1321
int __cxa_guard_acquire(__guard *g) {return !*(char *)(g);};
1422
void __cxa_guard_release (__guard *g) {*(char *)g = 1;};
1523
void __cxa_guard_abort (__guard *) {};

digistump-avr/cores/tiny/new.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
#include <stdlib.h>
99

1010
void * operator new(size_t size);
11-
void operator delete(void * ptr);
11+
void * operator new[](size_t size);
12+
void operator delete(void * ptr);
13+
void operator delete[](void * ptr);
1214

1315
__extension__ typedef int __guard __attribute__((mode (__DI__)));
1416

0 commit comments

Comments
 (0)