From 015fead14e2466763ecfff196756c53f293b266a Mon Sep 17 00:00:00 2001
From: kramm <kramm>
Date: Tue, 30 Dec 2008 23:02:44 +0000
Subject: [PATCH] classinfo_t now has a union member for storing
 subclasses/submembers

---
 lib/as3/registry.c |   12 ++++--------
 lib/as3/registry.h |    6 +++++-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/lib/as3/registry.c b/lib/as3/registry.c
index 06ae5c5..e23321f 100644
--- a/lib/as3/registry.c
+++ b/lib/as3/registry.c
@@ -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;
diff --git a/lib/as3/registry.h b/lib/as3/registry.h
index b5769b0..1784563 100644
--- a/lib/as3/registry.h
+++ b/lib/as3/registry.h
@@ -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;
-- 
1.7.10.4