From c4b249e5376f0fd788b9189b70e7cd629d75767e Mon Sep 17 00:00:00 2001 From: kramm Date: Tue, 2 Dec 2008 17:04:25 +0000 Subject: [PATCH] added more built-in types --- lib/as3/registry.c | 41 +++++++++++++++++++++++++++++++++++------ lib/as3/registry.h | 8 +++++++- 2 files changed, 42 insertions(+), 7 deletions(-) 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) diff --git a/lib/as3/registry.h b/lib/as3/registry.h index 0419675..5d07634 100644 --- a/lib/as3/registry.h +++ b/lib/as3/registry.h @@ -1,6 +1,12 @@ #ifndef __abc_registry_h__ #define __abc_registry_h__ -multiname_t* registry_findclass(const char*s); +multiname_t* registry_findclass(const char*package, const char*name); +multiname_t* registry_getanytype(); multiname_t* registry_getobjectclass(); +multiname_t* registry_getnumberclass(); +multiname_t* registry_getstringclass(); +multiname_t* registry_getintclass(); +multiname_t* registry_getuintclass(); +multiname_t* registry_getbooleanclass(); multiname_t* registry_getsuperclass(multiname_t*m); #endif -- 1.7.10.4