- Added some tools to detect memory leaks.
[ircu2.10.12-pk.git] / ircd / ircd_alloc.c
1 /************************************************************************
2  *   IRC - Internet Relay Chat, ircd/ircd_alloc.c
3  *   Copyright (C) 1999 Thomas Helvey (BleepSoft)
4  *                     
5  *   See file AUTHORS in IRC package for additional names of
6  *   the programmers. 
7  *
8  *   This program is free software; you can redistribute it and/or modify
9  *   it under the terms of the GNU General Public License as published by
10  *   the Free Software Foundation; either version 1, or (at your option)
11  *   any later version.
12  *
13  *   This program is distributed in the hope that it will be useful,
14  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  *   GNU General Public License for more details.
17  *
18  *   You should have received a copy of the GNU General Public License
19  *   along with this program; if not, write to the Free Software
20  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  *   $Id$
23  */
24 #include "config.h"
25
26 #include "ircd_alloc.h"
27 #include "ircd_string.h"
28 #include "s_debug.h"
29
30 #include <assert.h>
31
32 static void nomem_handler(void);
33
34 /* Those ugly globals... */
35 OutOfMemoryHandler noMemHandler = nomem_handler;
36 void *malloc_tmp;
37
38 static void
39 nomem_handler(void)
40 {
41 #ifdef MDEBUG
42   assert(0);
43 #else
44   Debug((DEBUG_FATAL, "Out of memory, exiting"));
45   exit(2);
46 #endif
47 }
48
49 void
50 set_nomem_handler(OutOfMemoryHandler handler)
51 {
52   noMemHandler = handler;
53 }