-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 dict_t*classes=0;
+
+// ----------------------- class signature ------------------------------
+
+char class_signature_equals(class_signature_t*c1, class_signature_t*c2)
+{
+ /* notice: access right is *not* respected */
+ if(!strcmp(c1->name, c2->name) &&
+ !strcmp(c1->package, c2->package)) {
+ return 1;
+ }
+ return 0;
+}
+static unsigned int class_signature_hash(class_signature_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(class_signature_t*c) {}
+
+type_t class_signature_type = {
+ hash: (hash_func)class_signature_hash,
+ equals: (equals_func)class_signature_equals,
+ /* all signatures are static */
+ dup: (dup_func)dummy_clone,
+ free: (free_func)dummy_destroy,