blob: cffab6e1caea628a58c50147d7e4b4c1214df72c [file] [log] [blame]
Niko Catania69b1a8a2009-04-10 10:54:03 -07001/* -*- c++ -*- */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08002#ifndef __NEW__
3#define __NEW__
4
Elliott Hughesf44b2322016-05-26 17:35:00 -07005#include <stddef.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08006
David 'Digit' Turner0621a272010-06-25 16:53:37 -07007extern "C++" {
8
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08009namespace std {
Elliott Hughesf44b2322016-05-26 17:35:00 -070010 using ::size_t;
11 struct nothrow_t {};
12 extern const nothrow_t nothrow;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080013}
14
15void* operator new(std::size_t);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080016void* operator new(std::size_t, const std::nothrow_t&);
Elliott Hughesf44b2322016-05-26 17:35:00 -070017void operator delete(void*) throw();
18// TODO: void operator delete(void*, std::size_t) throw();
19void operator delete(void*, const std::nothrow_t&) throw();
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080020
Elliott Hughesf44b2322016-05-26 17:35:00 -070021void* operator new[](std::size_t);
22void* operator new[](std::size_t, const std::nothrow_t&);
23void operator delete[](void*) throw();
24// TODO: void operator delete[](void*, std::size_t) throw();
25void operator delete[](void*, const std::nothrow_t&) throw();
26
27// These four are not replaceable, so should be inlined.
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080028inline void* operator new(std::size_t, void* p) { return p; }
29inline void* operator new[](std::size_t, void* p) { return p; }
Elliott Hughesf44b2322016-05-26 17:35:00 -070030inline void operator delete(void*, void*) throw() { }
31inline void operator delete[](void*, void*) throw() { }
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080032
David 'Digit' Turner0621a272010-06-25 16:53:37 -070033} // extern C++
34
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080035#endif // __NEW__