From 1452a06a0c7df3f152bc2373ea1ee7378852dadb Mon Sep 17 00:00:00 2001 From: Lance Date: Tue, 9 Jan 2007 02:45:01 +0000 Subject: * Hotfix: Freeing of freed pointer when replacing script functions. [Lance] git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9634 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/npc.c | 3 ++- src/map/script.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/map/npc.c b/src/map/npc.c index 802bc3b4a..4b1fa5c10 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -2178,7 +2178,8 @@ static int npc_parse_function (char *w1, char *w2, char *w3, char *w4, char *fir if(oldscript != NULL) { printf("\r"); //Carriage return to clear the 'loading..' line. [Skotlex] ShowInfo("parse_function: Overwriting user function [%s] (%s:%d)\n", p, file, *lines); - script_free_code(oldscript); + script_free_vars( &oldscript->script_vars ); + aFree( oldscript->script_buf ); user_db->remove(user_db,str2key(p)); strdb_put(user_db, p, script); } else diff --git a/src/map/script.h b/src/map/script.h index 13b1ef41a..09b4a797b 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -77,6 +77,7 @@ void script_stop_sleeptimers(int id); struct linkdb_node* script_erase_sleepdb(struct linkdb_node *n); void script_free_stack(struct script_stack*); void script_free_code(struct script_code* code); +void script_free_vars(struct linkdb_node **node); struct dbt* script_get_label_db(void); struct dbt* script_get_userfunc_db(void); -- cgit v1.2.3-70-g09d2