summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-04-01 06:16:28 +0000
committeramber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-04-01 06:16:28 +0000
commit1086946ca3a5c6cf58c2f1e67f0078cd3abbb698 (patch)
treea479094bf3e452d08c631d81b1b44d6b8e097b9d
parent12e8d15728ce26f82a985c0a7218a1e9482250d2 (diff)
downloadhercules-1086946ca3a5c6cf58c2f1e67f0078cd3abbb698.tar.gz
hercules-1086946ca3a5c6cf58c2f1e67f0078cd3abbb698.tar.bz2
hercules-1086946ca3a5c6cf58c2f1e67f0078cd3abbb698.tar.xz
hercules-1086946ca3a5c6cf58c2f1e67f0078cd3abbb698.zip
Fixed some memory corruptions [MouseJstr]
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1370 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-SVN.txt7
-rw-r--r--src/map/npc.c9
-rw-r--r--src/map/script.c8
3 files changed, 17 insertions, 7 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt
index 0a952fafb..97d24977f 100644
--- a/Changelog-SVN.txt
+++ b/Changelog-SVN.txt
@@ -2,6 +2,13 @@
Date Added
03/31
+ * Fixed memory corruption during shutdown via the script_buf
+ [SVN 1370: MouseJstr]
+ * Added some useful filename info to the script parser so that
+ it is easier to figure out what is going on [SVN 1370:
+ MouseJstr]
+ * updated the visual studio projects a little bit [SVN 1370:
+ MouseJstr]
* fixed memory corruption in mapif_guild_info:int_guild.c
[SVN 1367: MouseJstr]
* Fixed common/lock.c (problem with unistd.h include) [Codemaster]
diff --git a/src/map/npc.c b/src/map/npc.c
index 2396991d5..3369d6b77 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -29,7 +29,10 @@
#include "memwatch.h"
#endif
-
+#ifdef _WIN32
+#undef isspace
+#define isspace(x) (x == ' ' || x == '\t')
+#endif
struct npc_src_list {
struct npc_src_list * next;
@@ -1708,11 +1711,11 @@ static int npc_parse_script(char *w1,char *w2,char *w3,char *w4,char *first_line
char srcname[128];
struct npc_data *nd2;
if( sscanf(w2,"duplicate(%[^)])",srcname)!=1 ){
- printf("bad duplicate name! : %s",w2);
+ printf("bad duplicate name (in %s)! : %s",current_file, w2);
return 0;
}
if( (nd2=npc_name2id(srcname))==NULL ){
- printf("bad duplicate name! (not exist) : %s\n",srcname);
+ printf("bad duplicate name (in %s)! (not exist) : %s\n", current_file, srcname);
return 0;
}
script=(unsigned char *)nd2->u.scr.script;
diff --git a/src/map/script.c b/src/map/script.c
index 8a1672c06..1a0a1d1c1 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -52,7 +52,7 @@
(t)=conv_num(st,&(st->stack->stack_data[st->start+(n)]));
enum { LABEL_NEXTLINE=1,LABEL_START };
-static unsigned char * script_buf;
+static unsigned char * script_buf = NULL;
static int script_pos,script_size;
char *str_buf;
@@ -65,7 +65,7 @@ static struct str_data_struct {
int (*func)(struct script_state *);
int val;
int next;
-} *str_data;
+} *str_data = NULL;
int str_num=LABEL_START,str_data_size;
int str_hash[16];
@@ -7813,8 +7813,8 @@ int do_final_script()
{
if(mapreg_dirty>=0)
script_save_mapreg();
- if(script_buf)
- aFree(script_buf);
+// if(script_buf)
+// aFree(script_buf);
if(mapreg_db)
numdb_final(mapreg_db,mapreg_db_final);