X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fas3%2Fregistry.c;h=11c050c1de326684b3dc6f300464a954d64864f1;hb=c4b249e5376f0fd788b9189b70e7cd629d75767e;hp=0e3f3db322c83aea97017f3db723b23676665922;hpb=45c6d086e48f71cfb4c38a35d4cb6c26e15a9b21;p=swftools.git diff --git a/lib/as3/registry.c b/lib/as3/registry.c index 0e3f3db..11c050c 100644 --- a/lib/as3/registry.c +++ b/lib/as3/registry.c @@ -7,14 +7,43 @@ static namespace_t static_empty_ns = { static multiname_t static_object_class = { QNAME, &static_empty_ns, 0, "Object" }; +static multiname_t static_anytype_class = { + QNAME, &static_empty_ns, 0, 0 +}; +static multiname_t static_string_class = { + QNAME, &static_empty_ns, 0, "String" +}; +static multiname_t static_boolean_class = { + QNAME, &static_empty_ns, 0, "Boolean" +}; +static multiname_t static_number_class = { + QNAME, &static_empty_ns, 0, "Number" +}; +static multiname_t static_int_class = { + QNAME, &static_empty_ns, 0, "int" +}; +static multiname_t static_uint_class = { + QNAME, &static_empty_ns, 0, "uint" +}; -multiname_t* registry_getobjectclass() -{ - return &static_object_class; -} -multiname_t* registry_findclass(const char*s) +multiname_t* registry_getobjectclass() {return &static_object_class;} +multiname_t* registry_getanytype() {return &static_anytype_class;} +multiname_t* registry_getstringclass() {return &static_string_class;} +multiname_t* registry_getintclass() {return &static_int_class;} +multiname_t* registry_getuintclass() {return &static_uint_class;} +multiname_t* registry_getbooleanclass() {return &static_boolean_class;} +multiname_t* registry_getnumberclass() {return &static_number_class;} + +multiname_t* registry_findclass(const char*package, const char*name) { - multiname_t*m = multiname_fromstring(s); + multiname_t*m=0; + if(!package) { + m = multiname_new(0, name); + } else { + namespace_t*ns = namespace_new_packageinternal(package); + m = multiname_new(ns,name); + namespace_destroy(ns); + } return m; } multiname_t* registry_getsuperclass(multiname_t*m)