summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-09 02:45:01 +0000
committerLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-01-09 02:45:01 +0000
commit1452a06a0c7df3f152bc2373ea1ee7378852dadb (patch)
treeb17c33fe1648cbaafb7c764aef71aad605998b64 /src/map
parent4e6b84f5321154587932e5758f63280bde34b02e (diff)
downloadhercules-1452a06a0c7df3f152bc2373ea1ee7378852dadb.tar.gz
hercules-1452a06a0c7df3f152bc2373ea1ee7378852dadb.tar.bz2
hercules-1452a06a0c7df3f152bc2373ea1ee7378852dadb.tar.xz
hercules-1452a06a0c7df3f152bc2373ea1ee7378852dadb.zip
* 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
Diffstat (limited to 'src/map')
-rw-r--r--src/map/npc.c3
-rw-r--r--src/map/script.h1
2 files changed, 3 insertions, 1 deletions
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);