tosort=abc->classes;
for(t=0;t<abc->classes->num;t++) {index[t]=t;}
qsort(index, abc->classes->num, sizeof(int), compare_classes);
-
for(t=0;t<abc->classes->num;t++) {
abc_class_t*cls = array_getvalue(abc->classes, index[t]);
int access = cls->classname->ns->access;
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
if(superid)
fprintf(fi, ", &%s, interfaces:{", superid);
else
default:
fprintf(stderr, "Unknown trait type %d\n", trait->kind);
}
+ int flags = is_static?FLAG_STATIC: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;
+
if(pass==0) {
fprintf(fi, "static memberinfo_t %s;\n", id2);
} if(pass==1) {
- fprintf(fi, "static memberinfo_t %s = {%s, \"%s\"", id2, type, name);
+ fprintf(fi, "static memberinfo_t %s = {%s, 0x%02x, \"%s\"", id2, type, flags, name);
if(!retvalue)
fprintf(fi, ", 0");
else
if(id) free(id);
if(superid) free(superid);
}
+
+ for(t=0;t<abc->scripts->num;t++) {
+ abc_script_t*s = array_getvalue(abc->scripts, t);
+ trait_list_t*l=0;
+ for(l=s->traits;l;l=l->next) {
+ trait_t*trait = l->trait;
+ if(trait->kind == TRAIT_METHOD) {
+ printf("%s\n", multiname_tostring(trait->name));
+ }
+ }
+ }
+
swf_FreeABC(abc);
memfile_close(file);tag->data=0;