File tree 3 files changed +43
-0
lines changed
hardware/arduino/cores/arduino
3 files changed +43
-0
lines changed Original file line number Diff line number Diff line change 20
20
#ifndef Printable_h
21
21
#define Printable_h
22
22
23
+ #include < new.h>
24
+
23
25
class Print ;
24
26
25
27
/* * The Printable class provides a way for new classes to allow themselves to be printed.
@@ -31,6 +33,7 @@ class Print;
31
33
class Printable
32
34
{
33
35
public:
36
+ virtual ~Printable () {};
34
37
virtual void printTo (Print& p) const =0;
35
38
};
36
39
Original file line number Diff line number Diff line change
1
+ #include < new.h>
2
+
3
+ void * operator new (size_t size)
4
+ {
5
+ return malloc (size);
6
+ }
7
+
8
+ void operator delete (void * ptr)
9
+ {
10
+ free (ptr);
11
+ }
12
+
13
+ int __cxa_guard_acquire (__guard *g) {return !*(char *)(g);};
14
+ void __cxa_guard_release (__guard *g) {*(char *)g = 1 ;};
15
+ void __cxa_guard_abort (__guard *) {};
16
+
17
+ void __cxa_pure_virtual (void ) {};
18
+
Original file line number Diff line number Diff line change
1
+ /* Header to define new/delete operators as they aren't provided by avr-gcc by default
2
+ Taken from http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=59453
3
+ */
4
+
5
+ #ifndef NEW_H
6
+ #define NEW_H
7
+
8
+ #include <stdlib.h>
9
+
10
+ void * operator new (size_t size );
11
+ void operator delete (void * ptr );
12
+
13
+ __extension__ typedef int __guard __attribute__((mode (__DI__ )));
14
+
15
+ extern "C" int __cxa_guard_acquire (__guard * );
16
+ extern "C" void __cxa_guard_release (__guard * );
17
+ extern "C" void __cxa_guard_abort (__guard * );
18
+
19
+ extern "C" void __cxa_pure_virtual (void );
20
+
21
+ #endif
22
+
You can’t perform that action at this time.
0 commit comments