From: kramm Date: Tue, 9 Dec 2008 13:39:16 +0000 (+0000) Subject: code_append now always returns the last statement in the list X-Git-Tag: release-0-9-0~719 X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=e7fee1e2a1890faafff6cbdb11ccddc769098199;p=swftools.git code_append now always returns the last statement in the list --- diff --git a/lib/as3/code.c b/lib/as3/code.c index 86bae59..cb39096 100644 --- a/lib/as3/code.c +++ b/lib/as3/code.c @@ -995,12 +995,21 @@ void codestats_print(codestats_t*stats) printf("scope_depth: %d\n", stats->max_scope_depth); } +code_t* code_end(code_t*code) +{ + if(!code) + return 0; + while(code->next) + code = code->next; + return code; +} + code_t* code_append(code_t*code, code_t*toappend) { if(!code) - return toappend; + return code_end(toappend); if(!toappend) - return code; + return code_end(code); //find end of first list while(code->next) { code = code->next; @@ -1012,6 +1021,6 @@ code_t* code_append(code_t*code, code_t*toappend) } code->next = start; start->prev = code; - return toappend; + return code_end(toappend); }