1
//////////////////////////////////////////////////////////////////////////
3
// pgScript - PostgreSQL Tools
4
// RCS-ID: $Id: pgsAlloc.h 7758 2009-03-26 20:49:59Z dpage $
5
// Copyright (C) 2002 - 2009, The pgAdmin Development Team
6
// This software is released under the BSD Licence
8
//////////////////////////////////////////////////////////////////////////
16
#include <cstdlib> // malloc and free
17
#include <new> // std::bad_alloc
18
#include <wx/hashmap.h>
28
WX_DECLARE_VOIDPTR_HASH_MAP(pgsMallocInfo, pgsMallocInfoMap);
37
pgsMallocInfoMap m_malloc_info;
41
void add_malloc(const pgsMallocInfo & malloc_info);
43
void rm_malloc(const void * ptr);
47
void * pmalloc(size_t size, const char * filename, size_t line_nb);
51
void pfree(void * ptr);
53
static pgsAlloc & instance();
57
void * operator new(size_t size) throw (std::bad_alloc);
58
void * operator new[](size_t size) throw (std::bad_alloc);
59
void * operator new(size_t size, const char * filename, size_t line_nb)
60
throw (std::bad_alloc);
61
void * operator new[](size_t size, const char * filename, size_t line_nb)
62
throw (std::bad_alloc);
63
void operator delete(void * ptr) throw ();
64
void operator delete[](void * ptr) throw ();
66
#define pnew new(__FILE__, __LINE__)
74
#define pdelete(x) if ((x) != 0) { delete x; x = 0; }
75
#define pdeletea(x) if ((x) != 0) { delete[] x; x = 0; }
77
#endif /*PGSALLOC_H_*/