added more built-in types
authorkramm <kramm>
Tue, 2 Dec 2008 17:04:25 +0000 (17:04 +0000)
committerkramm <kramm>
Tue, 2 Dec 2008 17:04:25 +0000 (17:04 +0000)
lib/as3/registry.c
lib/as3/registry.h

index 0e3f3db..11c050c 100644 (file)
@@ -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)
index 0419675..5d07634 100644 (file)
@@ -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