+ assert(classes);
+ class_signature_t tmp;
+ tmp.package = package;
+ tmp.name = name;
+ class_signature_t* c = (class_signature_t*)dict_lookup(classes, &tmp);
+ return c;
+}
+void registry_fill_multiname(multiname_t*m, namespace_t*n, class_signature_t*c)
+{
+ m->type = QNAME;
+ m->ns = n;
+ m->ns->access = c->access;
+ m->ns->name = (char*)c->package;
+ m->name = c->name;
+ m->namespace_set = 0;
+}
+multiname_t* class_signature_to_multiname(class_signature_t*cls)
+{
+ if(!cls)
+ return 0;
+ multiname_t*m=0;
+ namespace_t*ns = namespace_new(cls->access, cls->package);
+ return multiname_new(ns,cls->name);
+}
+
+// ----------------------- builtin types ------------------------------
+class_signature_t* registry_getanytype() {return 0;/*FIXME*/}
+
+class_signature_t* registry_getobjectclass() {return registry_safefindclass("", "Object");}
+class_signature_t* registry_getstringclass() {return registry_safefindclass("", "String");}
+class_signature_t* registry_getintclass() {return registry_safefindclass("", "int");}
+class_signature_t* registry_getuintclass() {return registry_safefindclass("", "uint");}
+class_signature_t* registry_getbooleanclass() {return registry_safefindclass("", "Boolean");}
+class_signature_t* registry_getnumberclass() {return registry_safefindclass("", "Number");}
+class_signature_t* registry_getMovieClip() {return registry_safefindclass("flash.display", "MovieClip");}
+
+// ----------------------- builtin dummy types -------------------------
+class_signature_t nullclass = {
+ ACCESS_PACKAGE, "", "null", 0, 0, 0,
+};
+class_signature_t* registry_getnullclass() {
+ return &nullclass;