indentation problem in the generated code
[deliverable/titan.core.git] / common / dbgnew.hh
1 /******************************************************************************
2 * Copyright (c) 2000-2016 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Balasko, Jeno
10 * Raduly, Csaba
11 *
12 ******************************************************************************/
13 #ifndef DBGNEW_HH
14 #define DBGNEW_HH
15
16 #ifndef _Common_memory_H
17 #include "memory.h"
18 #endif
19
20 #ifdef MEMORY_DEBUG
21
22 class debug_new_counter_t
23 {
24 static int count;
25 static const char * progname;
26 public:
27 debug_new_counter_t();
28 ~debug_new_counter_t();
29 void set_program_name(const char *pgn);
30 };
31 // implementation in new.cc
32
33 // An instance for every translation unit. Because each instance is constructed
34 // before main() and probably before any other global object,
35 // it is destroyed after main() ends and all global objects are destroyed.
36 // The last destructor runs check_mem_leak().
37 static debug_new_counter_t debug_new_counter;
38
39 // Custom placement new for memory tracking
40 void* operator new(size_t size, const char* file, int line);
41 void* operator new[](size_t size, const char* file, int line);
42
43 // Redirect "normal" new to memory-tracking placement new.
44 #define new new(__FILE__, __LINE__)
45
46 #endif // MEMORY_DEBUG
47
48 #endif
This page took 0.03225 seconds and 5 git commands to generate.