diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-18 17:07:16 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-04-18 17:07:16 +0000 |
commit | 03c08ba5b46044f1aa0ae396f1ae5011f201f3a7 (patch) | |
tree | b137ad0e743459ef936a96360d533998d8089161 /src | |
parent | 006962cfa01113b6f127bc72f693282164d4a42d (diff) | |
download | hercules-03c08ba5b46044f1aa0ae396f1ae5011f201f3a7.tar.gz hercules-03c08ba5b46044f1aa0ae396f1ae5011f201f3a7.tar.bz2 hercules-03c08ba5b46044f1aa0ae396f1ae5011f201f3a7.tar.xz hercules-03c08ba5b46044f1aa0ae396f1ae5011f201f3a7.zip |
- Fixed the delete_timer (@summons, alchemist plants) not invoking unit_free, hence causing memory leaks and the like.
- Applied jA's patch to fix a bug in the scripting engine in regards to priority of operators. Thanks to End of Exam for the information.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6161 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/map/mob.c | 2 | ||||
-rw-r--r-- | src/map/script.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index 5889903ed..55faf7ca1 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1484,7 +1484,9 @@ int mob_timer_delete(int tid, unsigned int tick, int id, int data) if (bl->type != BL_MOB)
return 0; //??
//for Alchemist CANNIBALIZE [Lupus]
+ ((TBL_MOB*)bl)->deletetimer = -1;
unit_remove_map(bl, 3);
+ unit_free(bl);
return 0;
}
diff --git a/src/map/script.c b/src/map/script.c index d0af3b8c0..3760e75cf 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -1201,7 +1201,7 @@ unsigned char* parse_subexpr(unsigned char *p,int limit) }
tmpp=(char *) p;
if((op=C_NEG,*p=='-') || (op=C_LNOT,*p=='!') || (op=C_NOT,*p=='~')){
- p=parse_subexpr(p+1,100);
+ p=parse_subexpr(p+1,8);
add_scriptc(op);
} else
p=parse_simpleexpr(p);
@@ -1211,7 +1211,7 @@ unsigned char* parse_subexpr(unsigned char *p,int limit) (op=C_MUL,opl=7,len=1,*p=='*') ||
(op=C_DIV,opl=7,len=1,*p=='/') ||
(op=C_MOD,opl=7,len=1,*p=='%') ||
- (op=C_FUNC,opl=8,len=1,*p=='(') ||
+ (op=C_FUNC,opl=9,len=1,*p=='(') ||
(op=C_LAND,opl=1,len=2,*p=='&' && p[1]=='&') ||
(op=C_AND,opl=5,len=1,*p=='&') ||
(op=C_LOR,opl=0,len=2,*p=='|' && p[1]=='|') ||
|