APM:Libraries
c++.cpp
Go to the documentation of this file.
1 //
2 // C++ runtime support not provided by Arduino
3 //
4 // Note: use new/delete with caution. The heap is small and
5 // easily fragmented.
6 
7 #include <AP_HAL/AP_HAL.h>
8 #include <stdlib.h>
9 
10 /*
11  globally override new and delete to ensure that we always start with
12  zero memory. This ensures consistent behaviour.
13  */
14 void * operator new(size_t size)
15 {
16  if (size < 1) {
17  size = 1;
18  }
19  return(calloc(size, 1));
20 }
21 
22 void operator delete(void *p)
23 {
24  if (p) free(p);
25 }
26 
27 void * operator new[](size_t size)
28 {
29  if (size < 1) {
30  size = 1;
31  }
32  return(calloc(size, 1));
33 }
34 
35 void operator delete[](void * ptr)
36 {
37  if (ptr) free(ptr);
38 }
void * calloc(size_t nmemb, size_t size)
Definition: malloc.c:76
void free(void *ptr)
Definition: malloc.c:81