From 015fead14e2466763ecfff196756c53f293b266a Mon Sep 17 00:00:00 2001 From: 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