retvalue = 0;
} //fallthrough
case TRAIT_FUNCTION:
- type = "MEMBER_METHOD";
+ type = "INFOTYPE_METHOD";
break;
case TRAIT_CONST:
case TRAIT_GETTER:
case TRAIT_SETTER:
case TRAIT_SLOT:
- type = "MEMBER_SLOT";
+ type = "INFOTYPE_SLOT";
break;
default:
fprintf(stderr, "Unknown trait type %d\n", trait->kind);
}
- fprintf(fi, "static memberinfo_t %s = {%s, 0x%02x, \"%s\"", id2, type, flags, name);
+ fprintf(fi, "static memberinfo_t %s = {%s, 0x%02x, \"%s\"", type, flags, id2, name);
if(!retvalue)
fprintf(fi, ", 0");
else
else
fprintf(fi, ", &%s", parent); // parent
- fprintf(fi, "};\n");
+ fprintf(fi, ", 0,0,0};\n");
}
-int access2flags(int access)
+int access2flags(multiname_t*m)
{
+ int access = m->ns->access;
int flags=0;
- if(access == ACCESS_PACKAGE) flags|=FLAG_PUBLIC;
- if(access == ACCESS_PRIVATE) flags|=FLAG_PRIVATE;
- if(access == ACCESS_PROTECTED) flags|=FLAG_PROTECTED;
- if(access == ACCESS_PACKAGEINTERNAL) flags|=FLAG_INTERNAL;
return flags;
}
fprintf(fi, "static classinfo_t %s;\n", id);
} else if(pass==1) {
fprintf(fi, "static classinfo_t %s = {0x%02x, 0x%02x, \"%s\", \"%s\"", id, access, flags, package, name);
- fprintf(fi, ", 0"); //slot
+ fprintf(fi, ", (void*)0"); //slot
if(superid)
fprintf(fi, ", &%s, interfaces:{", superid);
else
- fprintf(fi, ", 0, {");
+ fprintf(fi, ", (void*)0, interfaces:{");
if(cls->interfaces) {
multiname_list_t*i=cls->interfaces;
while(i) {
i = i->next;
}
}
- fprintf(fi, "0}};\n");
+ fprintf(fi, "(void*)0}};\n");
} else if(pass==2) {
trait_list_t*l=cls->traits;
fprintf(fi, " dict_put(d, &%s, &%s);\n", id, id);
}
int flags = is_static?FLAG_STATIC:0;
//flags |= access2flags(access);
- flags |= access2flags(trait->name->ns->access);
+ flags |= access2flags(trait->name);
if(pass==0) {
fprintf(fi, "static memberinfo_t %s;\n", id2);
const char*name = trait->name->name;
char*pid = mkpid(package);
char*id2 = mkid2(trait->name);
- int flags = FLAG_STATIC|access2flags(trait->name->ns->access);
+ int flags = FLAG_STATIC|access2flags(trait->name);
NEW(memberinfo_t,m);
char np = 0;
- int clsflags = FLAG_STATIC | FLAG_METHOD;
+ int clsflags = FLAG_STATIC;
if(pass==0) {
fprintf(fi, "static memberinfo_t %s;\n", id2);
fprintf(fi, "static classinfo_t %s_class;\n", id2);
} else if(pass==1) {
write_member_info(fi, 0, id2, name, flags, trait);
- fprintf(fi, "static classinfo_t %s_class = {0x%02x, 0x%02x, \"%s\", \"%s\", &%s, 0, members:{0}};\n",
+ fprintf(fi, "static classinfo_t %s_class = {0x%02x, 0x%02x, \"%s\", \"%s\", &%s, (void*)0, members:{(void*)0}};\n",
id2,
trait->name->ns->access, clsflags,
package, name,
fprintf(fi, "dict_t* builtin_getclasses()\n");
fprintf(fi, "{\n");
- fprintf(fi, " dict_t*d = dict_new2(&classinfo_type);\n");
+ fprintf(fi, " dict_t*d = dict_new2(&slotinfo_type);\n");
load_libraries("builtin.abc", 2, fi);
load_libraries("playerglobal.abc", 2, fi);
load_libraries("builtin.abc", 3, fi);