-static namespace_t static_empty_ns = {
- ACCESS_PACKAGE, ""
-};
-static namespace_t static_flash_display_ns = {
- ACCESS_PACKAGE, "flash.display"
-};
-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"
-};
-static multiname_t static_null_class = {
- QNAME, &static_empty_ns, 0, "null"
-};
-static multiname_t static_movieclip_class = {
- QNAME, &static_flash_display_ns, 0, "MovieClip"
+static dict_t*classes=0;
+
+// ----------------------- class signature ------------------------------
+
+char classinfo_equals(classinfo_t*c1, classinfo_t*c2)
+{
+ if(!!c1 != !!c2)
+ return 0;
+ /* notice: access right is *not* respected */
+ if(!strcmp(c1->name, c2->name) &&
+ !strcmp(c1->package, c2->package)) {
+ return 1;
+ }
+ return 0;
+}
+static unsigned int classinfo_hash(classinfo_t*c)
+{
+ unsigned int hash = 0;
+ hash = crc32_add_string(hash, c->package);
+ hash = crc32_add_string(hash, c->name);
+ return hash;
+}
+
+static void* dummy_clone(void*other) {return other;}
+static void dummy_destroy(classinfo_t*c) {}
+
+type_t classinfo_type = {
+ hash: (hash_func)classinfo_hash,
+ equals: (equals_func)classinfo_equals,
+ /* all signatures are static */
+ dup: (dup_func)dummy_clone,
+ free: (free_func)dummy_destroy,