new function memberinfo_register_global
[swftools.git] / lib / as3 / registry.h
index 0fb84a3..c4a8281 100644 (file)
@@ -31,6 +31,17 @@ DECLARE(classinfo);
 DECLARE(memberinfo);
 DECLARE_LIST(classinfo);
 
+#define FLAG_PUBLIC 1
+#define FLAG_FINAL 2
+#define FLAG_PROTECTED 4
+#define FLAG_STATIC 8
+#define FLAG_DYNAMIC 16
+#define FLAG_PRIVATE 32
+#define FLAG_OVERRIDE 64
+#define FLAG_METHOD 64
+#define FLAG_INTERNAL 128
+#define FLAG_NATIVE 256
+
 struct _classinfo {
     U8 access;
     U8 flags;
@@ -62,6 +73,7 @@ struct _memberinfo {
         classinfo_t*return_type;
         classinfo_t*type;
     };
+    classinfo_t*parent;
     classinfo_list_t*params;
     int slot;
 };
@@ -71,8 +83,9 @@ extern type_t memberinfo_type;
 
 void registry_init();
         
-classinfo_t* classinfo_register(int access, char*package, char*name, int num_interfaces);
+classinfo_t* classinfo_register(int access, const char*package, const char*name, int num_interfaces);
 memberinfo_t* memberinfo_register(classinfo_t*cls, const char*name, U8 type);
+memberinfo_t* memberinfo_register_global(U8 access, const char*package, const char*name, U8 kind);
 
 // static multinames
 classinfo_t* registry_getanytype();
@@ -89,7 +102,7 @@ classinfo_t* memberinfo_asclass(memberinfo_t*f);
 classinfo_t* registry_getclassclass(classinfo_t*a);
 
 classinfo_t* registry_findclass(const char*package, const char*name);
-memberinfo_t* registry_findmember(classinfo_t*cls, const char*name);
+memberinfo_t* registry_findmember(classinfo_t*cls, const char*name, char superclasses);
 
 void registry_fill_multiname(multiname_t*m, namespace_t*n, classinfo_t*c);
 multiname_t* classinfo_to_multiname(classinfo_t*cls);