X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fas3%2Fregistry.h;h=d63e879c54842acd163eee38281be65a56aabe29;hp=02cdbea401c38905950127c56232e3f7f34bc848;hb=9ed9a87914fc9a590967d46de404e0f6290b7bb2;hpb=5250e6b4e61611d48b7635650884f8828575a212 diff --git a/lib/as3/registry.h b/lib/as3/registry.h index 02cdbea..d63e879 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_ASSET 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();