X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fimport.c;h=dd42cfb335cbbc394d3d7dd6b26992f4f71ee379;hb=2b086ef6e187fe15a6bb1766795b2f0488f8ac32;hp=2d4af0eb0632e4785c20b319903dd10909fa44f8;hpb=c873335ba84fe69cb4a1183326c9cfef160509e2;p=swftools.git diff --git a/lib/as3/import.c b/lib/as3/import.c index 2d4af0e..dd42cfb 100644 --- a/lib/as3/import.c +++ b/lib/as3/import.c @@ -108,8 +108,9 @@ static classinfo_t*resolve_class(char*what, multiname_t*n) return c; } -void as3_import_code(abc_file_t*abc) +void as3_import_code(void*_abc) { + abc_file_t*abc = _abc; int t; for(t=0;tclasses->num;t++) { abc_class_t*cls = array_getvalue(abc->classes, t); @@ -159,23 +160,22 @@ void as3_import_code(abc_file_t*abc) if(access==ACCESS_PRIVATE) goto cont; const char*name = trait->name->name; - if(registry_findmember(c, name, 0)) + char* ns= ACCESS_NAMESPACE?strdup(trait->name->ns->name):""; + if(registry_findmember(c, ns, name, 0)) goto cont; name = strdup(name); memberinfo_t*s = 0; if(trait->kind == TRAIT_METHOD) { - s = (memberinfo_t*)methodinfo_register_onclass(c, access, name); + s = (memberinfo_t*)methodinfo_register_onclass(c, access, ns, name); s->return_type = resolve_class("return type", trait->method->return_type); } else if(trait->kind == TRAIT_SLOT || trait->kind == TRAIT_GETTER) { - s = (memberinfo_t*)varinfo_register_onclass(c, access, name); + s = (memberinfo_t*)varinfo_register_onclass(c, access, ns, name); s->type = resolve_class("type", trait->type_name); } else { goto cont; } - if(access==ACCESS_NAMESPACE) - s->package = strdup(trait->name->ns->name); s->flags = is_static?FLAG_STATIC:0; s->flags |= FLAG_BUILTIN;