don't generate a constructor method body for interfaces
[swftools.git] / lib / as3 / abc.h
index 57a5c9b..5a994cc 100644 (file)
@@ -32,8 +32,8 @@ DECLARE(abc_method);
 DECLARE(abc_method_body);
 DECLARE(abc_interface);
 DECLARE(abc_class);
-DECLARE(exception);
-DECLARE_LIST(exception);
+DECLARE(abc_exception);
+DECLARE_LIST(abc_exception);
 
 #include "code.h"
 #include "opcodes.h"
@@ -102,6 +102,11 @@ struct _trait {
     constant_t*value;
 };
 
+#define CLASS_SEALED 1
+#define CLASS_FINAL 2
+#define CLASS_INTERFACE 4
+#define CLASS_PROTECTED_NS 8
+
 struct _abc_class {
     abc_file_t*file;
     
@@ -112,12 +117,12 @@ struct _abc_class {
     multiname_list_t*interfaces;
 
     abc_method_t*constructor;
-    U8 flags;
+    trait_list_t*traits;
     
     abc_method_t*static_constructor;
-
-    trait_list_t*static_constructor_traits;
-    trait_list_t*traits;
+    trait_list_t*static_traits;
+    
+    U8 flags;
 
     int init_scope_depth; // volatile, might be increased during code verification
     
@@ -136,7 +141,7 @@ abc_method_body_t* abc_class_staticconstructor(abc_class_t*cls, multiname_t*retu
 abc_method_body_t* abc_class_constructor(abc_class_t*cls, multiname_t*returntype, int num_params, ...);
 abc_method_body_t* abc_class_method(abc_class_t*cls, multiname_t*returntype, char*name, int num_params, ...);
 
-struct _exception {
+struct _abc_exception {
     code_t*from;
     code_t*to;
     code_t*target;
@@ -160,7 +165,7 @@ struct _abc_method_body {
 
     int init_scope_depth; // volatile, might be increased during code verification
 
-    exception_list_t* exceptions;
+    abc_exception_list_t* exceptions;
 
     trait_list_t*traits;