classinfo_t now has a union member for storing subclasses/submembers
authorkramm <kramm>
Tue, 30 Dec 2008 23:02:44 +0000 (23:02 +0000)
committerkramm <kramm>
Tue, 30 Dec 2008 23:02:44 +0000 (23:02 +0000)
lib/as3/registry.c
lib/as3/registry.h

index 06ae5c5..e23321f 100644 (file)
@@ -108,12 +108,14 @@ classinfo_t* registry_getfunctionclass(memberinfo_t*f) {
     c->access = ACCESS_PUBLIC;
     c->package = "";
     c->name = "Function";
+    
     dict_init(&c->members,1);
-    dict_put(&c->members, "call", f);
+    c->function = f;
 
     dict_put(functionobjects, f, c);
     return c;
 }
+
 static dict_t* classobjects = 0;
 classinfo_t* registry_getclassclass(classinfo_t*a) {
     if(!classobjects) {
@@ -128,14 +130,8 @@ classinfo_t* registry_getclassclass(classinfo_t*a) {
     c->access = ACCESS_PUBLIC;
     c->package = "";
     c->name = "Class";
-    
-    NEW(memberinfo_t,m);
-    m->kind = MEMBER_SLOT;
-    m->name = "prototype";
-    m->type = a;
-
     dict_init(&c->members,1);
-    dict_put(&c->members, "prototype", m);
+    c->cls = a;
 
     dict_put(classobjects, a, c);
     return c;
index b5769b0..1784563 100644 (file)
@@ -35,7 +35,11 @@ struct _classinfo {
     U8 flags;
     const char*package;
     const char*name;
-    int slot;
+    union {
+        int slot;        // slot nr in initscript traits
+        classinfo_t*cls; // specific class of a Class type
+        memberinfo_t*function; //specific function of a Function type
+    };
 
     classinfo_t*superclass;
     dict_t members;