From 22e1db931f45226b27f7b84e0c1e183aaef56842 Mon Sep 17 00:00:00 2001 From: Lance Date: Mon, 22 May 2006 12:38:12 +0000 Subject: - Fixed some of the leaks.. still fixing.. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6691 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/scripts_custom.conf | 1 + src/map/npc.c | 2 +- src/map/script.c | 11 ++++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/npc/scripts_custom.conf b/npc/scripts_custom.conf index c29aff591..db7e5b28a 100644 --- a/npc/scripts_custom.conf +++ b/npc/scripts_custom.conf @@ -22,6 +22,7 @@ // -------------------------------------------------------------- // ----------------------- Basic Scripts ----------------------- // -- Adoption NPC [Fredzilla] +npc: script.txt npc: npc/custom/adoption.txt // -- Auctioneer - Use at own risk [Fredzilla] // Warning: It dupe items. diff --git a/src/map/npc.c b/src/map/npc.c index 4278d8d27..f68fa4e49 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -1381,7 +1381,7 @@ int npc_unload (struct npc_data *nd) aFree(nd->u.scr.timer_event); if (nd->u.scr.src_id == 0) { if(nd->u.scr.script) { - aFree(nd->u.scr.script); + script_free_code(nd->u.scr.script); nd->u.scr.script = NULL; } if (nd->u.scr.label_list) { diff --git a/src/map/script.c b/src/map/script.c index 413468eb7..777714a84 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -11882,6 +11882,15 @@ int script_config_read(char *cfgName) return script_config_read_sub(cfgName); } +static int do_final_userfunc_sub (DBKey key,void *data,va_list ap){ + struct script_code *code = (struct script_code *)data; + if(code){ + script_free_vars( &code->script_vars ); + aFree( code->script_buf ); + } + return 0; +} + /*========================================== * I *------------------------------------------ @@ -11894,7 +11903,7 @@ int do_final_script() mapreg_db->destroy(mapreg_db,NULL); mapregstr_db->destroy(mapregstr_db,NULL); scriptlabel_db->destroy(scriptlabel_db,NULL); - userfunc_db->destroy(userfunc_db,NULL); + userfunc_db->destroy(userfunc_db,do_final_userfunc_sub); if(sleep_db) { struct linkdb_node *n = (struct linkdb_node *)sleep_db; while(n) { -- cgit v1.2.3-70-g09d2