libpropeller
Making PropellerGCC Easier
Main Page
Related Pages
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Enumerations
Enumerator
Macros
Pages
libpropeller
libpropeller
c++allocate
c++allocate.h
Go to the documentation of this file.
1
#ifndef PROPGCC_SRLM_CPLUSPLUS_ALLOC_H_
2
#define PROPGCC_SRLM_CPLUSPLUS_ALLOC_H_
3
4
#include <cstdlib>
5
#include <new>
6
7
using
std::new_handler;
8
new_handler
__new_handler
;
9
10
void
*
11
operator
new
(std::size_t sz)
12
{
13
void
*p;
14
15
/* malloc (0) is unpredictable; avoid it. */
16
if
(sz == 0)
17
sz = 1;
18
p = (
void
*) malloc (sz);
19
while
(p == 0)
20
{
21
new_handler handler =
__new_handler
;
22
if
(! handler)
23
std::abort();
24
handler ();
25
p = (
void
*) std::malloc (sz);
26
}
27
28
return
p;
29
}
30
31
void
*
32
operator
new
[] (std::size_t sz)
33
{
34
return ::operator
new
(sz);
35
}
36
37
void
38
operator
delete
(
void
* ptr)
39
{
40
if
(ptr)
41
std::free(ptr);
42
}
43
44
new_handler
45
std::set_new_handler (new_handler handler)
46
{
47
new_handler prev_handler =
__new_handler
;
48
__new_handler
= handler;
49
return
prev_handler;
50
}
51
52
#endif // PROPGCC_SRLM_CPLUSPLUS_ALLOC_H_
Generated on Fri Oct 25 2013 23:41:46 for libpropeller by
1.8.4