X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fopcodes.c;h=c6b92036f0cf19ea8fd8ae7eec4aa225bc5295b5;hb=021a96c1b603981f1ec214efaa59a049ed7e709a;hp=5a4cc57fab2f66061124b2a798ed683fc9ee706f;hpb=21ef4c306d38969e8f5fe821a27d155b855735b9;p=swftools.git diff --git a/lib/as3/opcodes.c b/lib/as3/opcodes.c index 5a4cc57..c6b9203 100644 --- a/lib/as3/opcodes.c +++ b/lib/as3/opcodes.c @@ -1,26 +1,3 @@ -/* opcodes.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 "opcodes.h" code_t* abc_add(code_t*prev) { @@ -75,7 +52,7 @@ code_t* abc_call(code_t*prev, int v) self->data[0] = (void*)(ptroff_t)v; return self; } -code_t* abc_callmethod(code_t*prev, abc_method_body_t* m, int v) +code_t* abc_callmethod(code_t*prev, abc_method_t* m, int v) { code_t*self = add_opcode(prev, 0x43); self->data[0] = m; @@ -124,7 +101,7 @@ code_t* abc_callpropvoid2(code_t*prev, multiname_t* name, int v) self->data[1] = (void*)(ptroff_t)v; return self; } -code_t* abc_callstatic(code_t*prev, abc_method_t* m, int v) +code_t* abc_callstatic(code_t*prev, abc_method_body_t* m, int v) { code_t*self = add_opcode(prev, 0x44); self->data[0] = m; @@ -719,7 +696,7 @@ code_t* abc_newclass(code_t*prev, abc_class_t* m) self->data[0] = m; return self; } -code_t* abc_newfunction(code_t*prev, abc_method_body_t* m) +code_t* abc_newfunction(code_t*prev, abc_method_t* m) { code_t*self = add_opcode(prev, 0x40); self->data[0] = m; @@ -952,3 +929,14 @@ code_t* abc_urshift(code_t*prev) code_t*self = add_opcode(prev, 0xa7); return self; } +code_t* abc_applytype(code_t*prev, int v) +{ + code_t*self = add_opcode(prev, 0x53); + self->data[0] = (void*)(ptroff_t)v; + return self; +} +code_t* abc___break__(code_t*prev) +{ + code_t*self = add_opcode(prev, 0xff); + return self; +}