From 69d26f60061e44b067fbbf777ac85b3f36d573e4 Mon Sep 17 00:00:00 2001 From: paladin-t Date: Mon, 18 Jan 2016 15:51:09 +0800 Subject: [PATCH] *fixed an infinity loop bug with variable arguments handling; *fixed a memory leak with error routine. --- core/my_basic.c | 6 ++++-- output/my_basic.exe | Bin 354304 -> 354304 bytes 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/my_basic.c b/core/my_basic.c index 393d7c4..88eaf84 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -3324,6 +3324,8 @@ int _pop_arg(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, unsigned ca, u _internal_object_to_public_value(obj, arg); _destroy_object_capsule_only(obj, 0); } + } else { + arg->type = MB_DT_UNKNOWN; } } else { result = pop_arg(s, (void**)l, va, ca, ia, r, arg); @@ -3487,7 +3489,7 @@ int _eval_script_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un else _pop_weak_scope(s, running); - goto _exit; + goto _error; } running = _pop_weak_scope(s, running); @@ -3584,7 +3586,7 @@ int _eval_lambda_routine(mb_interpreter_t* s, _ls_node_t** l, mb_value_t* va, un if(result != MB_FUNC_OK) { _unlink_lambda_scope_chain(s, &r->func.lambda, true); - goto _exit; + goto _error; } running = _unlink_lambda_scope_chain(s, &r->func.lambda, true); diff --git a/output/my_basic.exe b/output/my_basic.exe index b0327d44178574ebba75a0460f8781c9834e2cbb..dbd4ac6eacde8f739db326af1e80f4d6dcce4957 100755 GIT binary patch delta 1062 zcmZ8ge{2&~9Dnb2W8K#67FiWxxMeG_(2ZTYcJyw*23ys|l|Wes1V_a12R2br?qD*J z&FjUTFGI`&l19S*nZGikLJ18cgrU_zn6tXY%q*Iy7!TV&O01*C#PfUG7>SpB^S
Mf~@Fk`+ff^W>1F&A}|3x5tPL5kPHsWH=S zX8XEXzI8L=)DO*)87_Rr+`p|mW(djhEYG8ybywp zA!Mv42>|$>{^eMWKc!_g6)k)J1#o|Qft30_kV@vj1_|owcU-s!;`y9x(|?(U+MrHu z5?@O5PiaqAL#Z!Cduvwgdtp(Hqh!hd)sR}}l#n+*R6%yCGm;(HANgT{{g!$5_m9o9 zfBCgJ_DRPAEBa@Rl(z>Y(R^w8?zJ-dcJ2DYi*S3T#{!yuM8|6#MXQG}BENNg0R)oY z(&BYL<7?6Mx;~8Gqp$MY@qQZT>+r`k!+Y^_wANYIlE?yjR*6@rhO|=YVHw#B4t~~lq zLq3B$X~g>kwYKNelPYUV!GU}()<0wp9m~bG%9>xNksm7y08Za-9DZ?IAet)#{=r|y zcDb>2T=YcFcAAQsW7-VnE@F@yn-M|}a#rw5!6e8@i@DS1nC0-lo*rRN;JmlmFawqY z#>U!k?v21RJH3az)7}k2yATjGAtDS4_k>MiyBH8pi4pO-7#CCGJ@G>0<;ID|KN^QO ioNO{L@GRgo@t62-_$mHZKF?X|s&rMyf*rZTOaB9hsF~XU delta 1103 zcmZ8ge@q-j6rR~z%3e8KLVIbXEnFxqM1I_IcfH>3Q9rI6S}jZO5lk*2#% z6(i8SRW}nVWJ;=0t0rh-YNVE$i!~zXC07e=P%c`nf3!(8+Z-|caiM2ST;D=V6DOIx z_vV{}Eo3A_&XOQ9JsTj*$YW#M7+IGbwXAT7%D(W}*ETZslNo8~(3_5?<9o4Ls05tpfgS!2iu(@9`Jc_;atV@gI75 zl|L=4Rq|EP!iX%>v2V7~iP}8{Uqjd000%;TLI13+-qJLI5&7fL_t1Fe$NBX|OY3go zs~5b(7@wmjg-)!{wBW^GQMNvW`{~|#Z_CXbRL^Nik8Ua3wE>n!{v=M*KHq8FNdNLZj3bou z?=8xI9wwlpVx+sGMw{Jiwo}=!V2xh!f9|>X+oIJpOO~2G zV5zQy`^~xR1Ij^qYIju$Y4N0Np6Jd6AWB-Q^ciInU)G8c{cd-#pbbipoNn=YJ9Pw& zyh0nAdMoH;a0h)SRC=ba0lS*zC3xlJ6QdK5D8urJ9@T&$no&41`k{T~AU#L5zuS&E z2|KcYno)-F&m3Is%hnjU+v2c9A52sObD6f!7)?Fga! zm<#;Puob|Rb!_}BQvyHs_$B5PcD%6qf)GWm%LzO213Dq>sX%gr~#5h2L!$YP1`866$z`3E^8IDJ%+ig<_w_w<{rc I=bhX1AIycRlmGw#