X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=lib%2Fas3%2Fabc.h;h=0fbd49469d3c09266fb6084b1c30284760ff326e;hb=7c57d2fc16a7cc08b3990eda8dad7391f5906be9;hp=fd477c9aa13a7f230f1cea5de1d00db068f221be;hpb=ad5c58267676e6715893ce10c227753a54469a40;p=swftools.git diff --git a/lib/as3/abc.h b/lib/as3/abc.h index fd477c9..0fbd494 100644 --- a/lib/as3/abc.h +++ b/lib/as3/abc.h @@ -58,8 +58,17 @@ struct _abc_file { abc_file_t*abc_file_new(); +#define TRAIT_SLOT 0 +#define TRAIT_METHOD 1 +#define TRAIT_GETTER 2 +#define TRAIT_SETTER 3 +#define TRAIT_CLASS 4 +#define TRAIT_FUNCTION 5 +#define TRAIT_CONST 6 + struct _trait { - unsigned char type; + unsigned char kind; + unsigned char attributes; multiname_t*name; union { @@ -82,7 +91,7 @@ struct _abc_class { multiname_t*classname; multiname_t*superclass; - const char*protectedNS; + namespace_t*protectedNS; multiname_list_t*interfaces; @@ -97,11 +106,13 @@ struct _abc_class { int index; //filled in during writing }; -abc_class_t* abc_class_new(abc_file_t*pool, char*classname, char*superclass); +abc_class_t* abc_class_new(abc_file_t*pool, multiname_t*classname, multiname_t*superclass); +abc_class_t* abc_class_new2(abc_file_t*pool, char*classname, char*superclass); void abc_class_sealed(abc_class_t*c); void abc_class_final(abc_class_t*c); void abc_class_interface(abc_class_t*c); void abc_class_protectedNS(abc_class_t*c, char*namespace); +void abc_class_add_interface(abc_class_t*c, multiname_t*interface); abc_method_body_t* abc_class_staticconstructor(abc_class_t*cls, char*returntype, int num_params, ...); abc_method_body_t* abc_class_constructor(abc_class_t*cls, char*returntype, int num_params, ...);