X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fcode.c;h=cb39096aa70e817b254b2214707cc4a02a8afea3;hb=e7fee1e2a1890faafff6cbdb11ccddc769098199;hp=02d8975dd55bb817f5bdeb7bfb335e5a8edbee2c;hpb=8648c60b64ea2f83579d2e04b563235d1d7d837b;p=swftools.git diff --git a/lib/as3/code.c b/lib/as3/code.c index 02d8975..cb39096 100644 --- a/lib/as3/code.c +++ b/lib/as3/code.c @@ -1,3 +1,26 @@ +/* code.c + + Routines for handling Flash2 AVM2 ABC Actionscript + + Extension module for the rfxswf library. + Part of the swftools package. + + Copyright (c) 2008 Matthias Kramm + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ + #include #include "code.h" #include "pool.h" @@ -972,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; @@ -989,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); }