X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fas3%2Fregistry.h;h=9e6f058a029d768594a2480b003930dc11aca4d2;hp=02cdbea401c38905950127c56232e3f7f34bc848;hb=b0dd28e6cbbab28a953f48bf3fe084a0b62fab63;hpb=5250e6b4e61611d48b7635650884f8828575a212 diff --git a/lib/as3/registry.h b/lib/as3/registry.h index 02cdbea..9e6f058 100644 --- a/lib/as3/registry.h +++ b/lib/as3/registry.h @@ -24,8 +24,10 @@ #ifndef __abc_registry_h__ #define __abc_registry_h__ -#include "pool.h" +#include "abc.h" +DECLARE(asset_bundle); +DECLARE_LIST(asset_bundle); DECLARE(slotinfo); DECLARE(classinfo); DECLARE(memberinfo); @@ -38,6 +40,7 @@ DECLARE_LIST(slotinfo); /* member/class flags */ #define FLAG_FINAL 1 #define FLAG_BUILTIN 128 +#define FLAG_USED 64 /* member flags */ #define FLAG_STATIC 2 @@ -79,6 +82,7 @@ struct _classinfo { dict_t members; dict_t static_members; void*data; //TODO: get rid of this- parser.y should pass type/value/code triples around + asset_bundle_t*assets; classinfo_t*interfaces[]; }; struct _memberinfo { @@ -111,6 +115,11 @@ struct _varinfo /*extends memberinfo*/ { constant_t*value; }; +struct _asset_bundle { + abc_file_t*file; + char used; +}; + extern type_t memberinfo_type; extern type_t slotinfo_type; char slotinfo_equals(slotinfo_t*c1, slotinfo_t*c2); @@ -150,6 +159,10 @@ namespace_t access2namespace(U8 access, char*package); char registry_ispackage(const char*package); +void registry_add_asset(asset_bundle_t*bundle); +void registry_use(slotinfo_t*s); +asset_bundle_list_t*registry_getassets(); + // static multinames classinfo_t voidclass; classinfo_t* registry_getanytype();