X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fregistry.c;h=1e2482b4e9958396f5c7ad020ae5438d0f20a6f5;hb=41309f0ddb30036d2c07261dba583815e2f6068f;hp=637f67e82283d003f79c17762e58611535cb5ffd;hpb=8269438e4683cc34b74ed9bd9bdb828535d07d70;p=swftools.git diff --git a/lib/as3/registry.c b/lib/as3/registry.c index 637f67e..1e2482b 100644 --- a/lib/as3/registry.c +++ b/lib/as3/registry.c @@ -32,6 +32,8 @@ static dict_t*classes=0; char class_signature_equals(class_signature_t*c1, class_signature_t*c2) { + if(!!c1 != !!c2) + return 0; /* notice: access right is *not* respected */ if(!strcmp(c1->name, c2->name) && !strcmp(c1->package, c2->package)) { @@ -80,7 +82,7 @@ type_t function_signature_type = { class_signature_t* class_signature_register(int access, char*package, char*name) { - class_signature_t*c = malloc(sizeof(class_signature_t)); + NEW(class_signature_t,c); c->access = access; c->package = package; c->name = name; @@ -97,8 +99,6 @@ void registry_init() class_signature_t* registry_safefindclass(const char*package, const char*name) { class_signature_t*c = registry_findclass(package, name); - if(!c) - printf("%s.%s\n", package, name); assert(c); return c; } @@ -109,6 +109,8 @@ class_signature_t* registry_findclass(const char*package, const char*name) tmp.package = package; tmp.name = name; class_signature_t* c = (class_signature_t*)dict_lookup(classes, &tmp); + /*if(c) + printf("%s.%s->%08x (%s.%s)\n", package, name, c, c->package, c->name);*/ return c; } void registry_fill_multiname(multiname_t*m, namespace_t*n, class_signature_t*c) @@ -142,7 +144,7 @@ class_signature_t* registry_getMovieClip() {return registry_safefindclass("flash // ----------------------- builtin dummy types ------------------------- class_signature_t nullclass = { - ACCESS_PACKAGE, "", "null", 0, 0, 0, + ACCESS_PACKAGE, 0, "", "null", 0, 0, 0, }; class_signature_t* registry_getnullclass() { return &nullclass;