X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fabc.c;h=7a7cb88f2669a64862c20865d688e211d750889e;hb=3dea7306ae2c9590673c10dec1fbabcd6d7e1806;hp=2962331ae2b9db197cf645097cc91206176ef276;hpb=780e53f414a281c516c153a578638c4f7414434c;p=swftools.git diff --git a/lib/as3/abc.c b/lib/as3/abc.c index 2962331..7a7cb88 100644 --- a/lib/as3/abc.c +++ b/lib/as3/abc.c @@ -591,7 +591,7 @@ static void traits_dump(FILE*fo, const char*prefix, trait_list_t*traits, abc_fil char*value = constant_tostring(trait->value); fprintf(fo, "%sslot %d: %s %s:%s %s %s\n", prefix, trait->slot_id, kind==TRAIT_CONST?"const":"var", name, type_name, - value?"=":"", value?value:""); + trait->value?"=":"", trait->value?value:""); if(value) free(value); free(type_name); } else { @@ -949,6 +949,10 @@ static pool_t*writeABC(TAG*abctag, void*code, pool_t*pool) NEW(abc_method_body_t,body);array_append(file->method_bodies, NO_KEY, body); // don't bother to set m->index body->method = m; m->body = body; + if(c->superclass && c->superclass->name && strcmp(c->superclass->name,"Object")) { + __ getlocal_0(body); + __ constructsuper(body, 0); + } __ returnvoid(body); c->constructor = m; } else {