X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fas3%2Fregistry.c;h=28f57a8bc7b161e5599e60b7a61032c3a89c9492;hp=2789fdf7e021129421d16967b5cbf71aa93ab941;hb=015233e6dbf54b574dd7f55d11c0d0d614802fde;hpb=24187589d18c08df30f53e7b05889056875338fe diff --git a/lib/as3/registry.c b/lib/as3/registry.c index 2789fdf..28f57a8 100644 --- a/lib/as3/registry.c +++ b/lib/as3/registry.c @@ -290,12 +290,19 @@ memberinfo_t* registry_findmember(classinfo_t*cls, const char*ns, const char*nam memberinfo_t* registry_findmember_nsset(classinfo_t*cls, namespace_list_t*ns, const char*name, char superclasses) { + memberinfo_t*m = 0; while(ns) { - memberinfo_t*m = registry_findmember(cls, ns->namespace->name, name, superclasses); + m = registry_findmember(cls, ns->namespace->name, name, superclasses); if(m) return m; ns = ns->next; } - return registry_findmember(cls, "", name, superclasses); + m = registry_findmember(cls, "", name, superclasses); + if(m) return m; + /* TODO: it maybe would be faster to just store the builtin namespace as "" in + builtins.c */ + m = registry_findmember(cls, "http://adobe.com/AS3/2006/builtin", name, superclasses); + if(m) return m; + return 0; } @@ -334,13 +341,15 @@ classinfo_t* slotinfo_asclass(slotinfo_t*f) { classinfo_t*c = rfx_calloc(sizeof(classinfo_t)+sizeof(classinfo_t*)); c->access = ACCESS_PUBLIC; c->package = ""; - if(f->kind == INFOTYPE_METHOD) + if(f->kind == INFOTYPE_METHOD) { c->name = "Function"; - else if(f->kind == INFOTYPE_CLASS) + c->superclass = registry_getobjectclass(); + } else if(f->kind == INFOTYPE_CLASS) { c->name = "Class"; - else if(f->kind == INFOTYPE_SLOT) + c->superclass = registry_getobjectclass(); + } else if(f->kind == INFOTYPE_SLOT) { c->name = "Object"; - else { + } else { c->name = "undefined"; }