From 03c08ba5b46044f1aa0ae396f1ae5011f201f3a7 Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 18 Apr 2006 17:07:16 +0000 Subject: - 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 --- Changelog-Trunk.txt | 4 ++++ src/map/mob.c | 2 ++ src/map/script.c | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index ae7d08244..e92086b5c 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/04/18 + * Fixed the delete_timer (@summons, alchemist plants) not invoking + unit_free, hence causing memory leaks and the like. [Skotlex] + * 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. [Skotlex] * Removed message 592 from trade.c [Skotlex] * Added support for disabling mapflags on a mapflag line: [Skotlex] comodo.gat mapflag nomemo <- turns on nomemo mapflag 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]=='|') || -- cgit v1.2.3-70-g09d2