/elec/propeller-clock

To get this branch, use:
bzr branch http://bzr.ed.am/elec/propeller-clock

« back to all changes in this revision

Viewing changes to src/utility/new

  • Committer: Tim Marston
  • Date: 2012-05-17 22:49:36 UTC
  • Revision ID: tim@ed.am-20120517224936-0wgyem932dlq5bs4
various tweaks, a (failed) attempt to fix text reset bug and added TODO

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*      Copyright (C) 2004 Garrett A. Kajmowicz
2
 
 
3
 
        This file is part of the uClibc++ Library.
4
 
 
5
 
        This library is free software; you can redistribute it and/or
6
 
        modify it under the terms of the GNU Lesser General Public
7
 
        License as published by the Free Software Foundation; either
8
 
        version 2.1 of the License, or (at your option) any later version.
9
 
 
10
 
        This library is distributed in the hope that it will be useful,
11
 
        but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
        Lesser General Public License for more details.
14
 
 
15
 
        You should have received a copy of the GNU Lesser General Public
16
 
        License along with this library; if not, write to the Free Software
17
 
        Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
 
*/
19
 
 
20
 
#include <basic_definitions>
21
 
#include <exception>
22
 
#include <cstddef>
23
 
 
24
 
#ifndef __STD_NEW_OPERATOR
25
 
#define __STD_NEW_OPERATOR 1
26
 
 
27
 
#pragma GCC visibility push(default)
28
 
 
29
 
namespace std{
30
 
        class _UCXXEXPORT bad_alloc : public exception {};
31
 
 
32
 
        struct _UCXXEXPORT nothrow_t {};
33
 
        extern const nothrow_t nothrow;
34
 
 
35
 
        typedef void (*new_handler)();
36
 
        _UCXXEXPORT new_handler set_new_handler(new_handler new_p) throw();
37
 
}
38
 
 
39
 
 
40
 
_UCXXEXPORT void* operator new(std::size_t numBytes) throw(std::bad_alloc);
41
 
_UCXXEXPORT void operator delete(void* ptr) throw();
42
 
 
43
 
_UCXXEXPORT void* operator new[](std::size_t numBytes) throw(std::bad_alloc);
44
 
_UCXXEXPORT void operator delete[](void * ptr) throw();
45
 
 
46
 
#ifndef NO_NOTHROW
47
 
_UCXXEXPORT void* operator new(std::size_t numBytes, const std::nothrow_t& ) throw();
48
 
_UCXXEXPORT void operator delete(void* ptr, const std::nothrow_t& ) throw();
49
 
 
50
 
_UCXXEXPORT void* operator new[](std::size_t numBytes, const std::nothrow_t& ) throw();
51
 
_UCXXEXPORT void operator delete[](void* ptr, const std::nothrow_t& ) throw();
52
 
#endif
53
 
 
54
 
        /* Placement operators */
55
 
inline void* operator new(std::size_t, void* ptr) throw() {return ptr; }
56
 
inline void operator delete(void* , void *) throw() { }
57
 
        
58
 
inline void* operator new[](std::size_t, void *p) throw() { return p; }
59
 
inline void operator delete[](void* , void *) throw() {}
60
 
 
61
 
#pragma GCC visibility pop
62
 
 
63
 
#endif
64