forked from github/server
making dmalloc work again
This commit is contained in:
parent
ced0d324e6
commit
264880cc7b
|
@ -21,6 +21,12 @@ if ! $(CCACHE_DIR) {
|
|||
Echo Compiling with ccache ;
|
||||
}
|
||||
|
||||
if $(DMALLOC) {
|
||||
Echo Compiling with dmalloc ;
|
||||
CCFLAGS += -DUSE_DMALLOC ;
|
||||
LINKFLAGS += -ldmalloc ;
|
||||
}
|
||||
|
||||
if $(PROFILE) = 1 {
|
||||
Echo Compiling with profiler ;
|
||||
CCFLAGS += -pg -g ;
|
||||
|
|
|
@ -3911,11 +3911,6 @@ do_battle(void)
|
|||
|
||||
/* Auswirkungen berechnen: */
|
||||
aftermath(b);
|
||||
/*
|
||||
#ifdef MALLOCDBG
|
||||
assert(_CrtCheckMemory());
|
||||
#endif
|
||||
*/
|
||||
/* Hier ist das Gefecht beendet, und wir können die
|
||||
* Hilfsstrukturen * wieder löschen: */
|
||||
|
||||
|
|
|
@ -97,7 +97,6 @@ promotelist(void *l, void *p)
|
|||
insertlist((void_list **)l, (void_list *)p);
|
||||
}
|
||||
|
||||
#ifndef MALLOCDBG
|
||||
void
|
||||
removelist(void *l, void *p)
|
||||
{
|
||||
|
@ -124,7 +123,6 @@ freelist(void *p1)
|
|||
p = p2;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
invert_list(void * heap)
|
||||
|
|
|
@ -89,7 +89,7 @@ mt_new_va(const char * name, ...)
|
|||
typedef struct arg_type {
|
||||
struct arg_type * next;
|
||||
const char * name;
|
||||
void (*free)(void*);
|
||||
void (*release)(void*);
|
||||
void* (*copy)(void*);
|
||||
} arg_type;
|
||||
|
||||
|
@ -101,7 +101,7 @@ register_argtype(const char * name, void(*free_arg)(void*), void*(*copy_arg)(voi
|
|||
arg_type * atype = (arg_type *)malloc(sizeof(arg_type));
|
||||
atype->name = name;
|
||||
atype->next = argtypes;
|
||||
atype->free = free_arg;
|
||||
atype->release = free_arg;
|
||||
atype->copy = copy_arg;
|
||||
argtypes = atype;
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ static void
|
|||
free_arg(const char * type, void * data)
|
||||
{
|
||||
arg_type * atype = find_argtype(type);
|
||||
if (atype && atype->free) atype->free(data);
|
||||
if (atype && atype->release) atype->release(data);
|
||||
}
|
||||
|
||||
message *
|
||||
|
|
31
src/config.h
31
src/config.h
|
@ -34,37 +34,22 @@ extern "C" {
|
|||
/**** ****
|
||||
** Debugging Libraries **
|
||||
**** ****/
|
||||
/*
|
||||
* MALLOCDBG is an integer >= 0 that specifies the level of
|
||||
* debugging. 0 = no debugging, >= 1 increasing levels of
|
||||
* debugging strength.
|
||||
*/
|
||||
#ifdef MPATROL
|
||||
# ifndef MALLOCDBG
|
||||
# define MALLOCDBG 1
|
||||
# endif
|
||||
# include <mpatrol.h>
|
||||
#endif
|
||||
|
||||
#if defined __GNUC__
|
||||
# define HAVE_INLINE
|
||||
# define INLINE_FUNCTION __inline
|
||||
#endif
|
||||
|
||||
#ifdef DMALLOC
|
||||
# ifndef MALLOCDBG
|
||||
# define MALLOCDBG 1
|
||||
# endif
|
||||
|
||||
/* define USE_DMALLOC to enable use of the dmalloc library */
|
||||
#ifdef USE_DMALLOC
|
||||
# include <stdlib.h>
|
||||
# include <string.h>
|
||||
# include <dmalloc.h>
|
||||
#endif
|
||||
|
||||
#if defined(_DEBUG) && defined(_MSC_VER)
|
||||
/* define MALLOCDBG in project settings, not here! */
|
||||
# ifdef MALLOCDBG
|
||||
# include <crtdbg.h>
|
||||
# define _CRTDBG_MAP_ALLOC
|
||||
# endif
|
||||
/* define CRTDBG to enable MSVC CRT Debug library functions */
|
||||
#if defined(_DEBUG) && defined(_MSC_VER) && defined(CRTDBG)
|
||||
# include <crtdbg.h>
|
||||
# define _CRTDBG_MAP_ALLOC
|
||||
#endif
|
||||
|
||||
/**** ****
|
||||
|
|
|
@ -410,9 +410,9 @@ game_done(void)
|
|||
|
||||
#include "magic.h"
|
||||
|
||||
#ifdef MALLOCDBG
|
||||
#ifdef CRTDBG
|
||||
void
|
||||
init_malloc_debug(void)
|
||||
init_crtdbg(void)
|
||||
{
|
||||
#if (defined(_MSC_VER))
|
||||
# if MALLOCDBG == 2
|
||||
|
@ -621,8 +621,11 @@ main(int argc, char *argv[])
|
|||
return -1;
|
||||
}
|
||||
#endif
|
||||
#ifdef MALLOCDBG
|
||||
init_malloc_debug();
|
||||
#ifdef CRTDBG
|
||||
init_crtdbg();
|
||||
#endif
|
||||
#ifdef DMALLOC
|
||||
init_dmalloc();
|
||||
#endif
|
||||
|
||||
if ((i=read_args(argc, argv))!=0) return i;
|
||||
|
|
|
@ -466,9 +466,9 @@ report_cleanup();
|
|||
|
||||
#include "magic.h"
|
||||
|
||||
#ifdef MALLOCDBG
|
||||
#ifdef CRTDBG
|
||||
void
|
||||
init_malloc_debug(void)
|
||||
init_crtdbg(void)
|
||||
{
|
||||
#if (defined(_MSC_VER))
|
||||
# if MALLOCDBG == 2
|
||||
|
@ -678,6 +678,8 @@ int
|
|||
main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
char * lc_ctype;
|
||||
char * lc_numeric;
|
||||
char zText[MAX_PATH];
|
||||
|
||||
setup_signal_handler();
|
||||
|
@ -689,16 +691,18 @@ main(int argc, char *argv[])
|
|||
"Copyright (C) 1996-2005 C. Schlittchen, K. Zedel, E. Rehling, H. Peters.\n\n"
|
||||
"Compilation: " __DATE__ " at " __TIME__ "\nVersion: %f\n\n", global.gamename, version());
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
setlocale(LC_NUMERIC, "C");
|
||||
lc_ctype = setlocale(LC_CTYPE, "");
|
||||
lc_numeric = setlocale(LC_NUMERIC, "C");
|
||||
if (lc_ctype) lc_ctype = strdup(lc_ctype);
|
||||
if (lc_numeric) lc_numeric = strdup(lc_numeric);
|
||||
#ifdef LOCALE_CHECK
|
||||
if (!locale_check()) {
|
||||
log_error(("The current locale is not suitable for international Eressea.\n"));
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
#ifdef MALLOCDBG
|
||||
init_malloc_debug();
|
||||
#ifdef CRTDBG
|
||||
init_crtdbg();
|
||||
#endif
|
||||
|
||||
lua_State * luaState = lua_init();
|
||||
|
@ -739,5 +743,11 @@ main(int argc, char *argv[])
|
|||
kernel_done();
|
||||
lua_done(luaState);
|
||||
log_close();
|
||||
|
||||
setlocale(LC_CTYPE, lc_ctype);
|
||||
setlocale(LC_NUMERIC, lc_numeric);
|
||||
free(lc_ctype);
|
||||
free(lc_numeric);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue