dump out method flags
[swftools.git] / lib / as3 / abc.c
index 91a70e6..8466ded 100644 (file)
@@ -334,7 +334,21 @@ static void dump_method(FILE*fo, const char*prefix, const char*type, const char*
         return;
     }
     
-    fprintf(fo, "%s[stack:%d locals:%d scope:%d-%d flags:%02x]\n", prefix, c->old.max_stack, c->old.local_count, c->old.init_scope_depth, c->old.max_scope_depth, c->method->flags);
+    fprintf(fo, "%s[stack:%d locals:%d scope:%d-%d flags:", 
+            prefix, c->old.max_stack, c->old.local_count, c->old.init_scope_depth, 
+            c->old.max_scope_depth);
+
+
+    int flags = c->method->flags;
+    if(flags&METHOD_NEED_ARGUMENTS) {fprintf(fo, " need_arguments");flags&=~METHOD_NEED_ARGUMENTS;}
+    if(flags&METHOD_NEED_ACTIVATION) {fprintf(fo, " need_activation");flags&=~METHOD_NEED_ACTIVATION;}
+    if(flags&METHOD_NEED_REST) {fprintf(fo, " need_rest");flags&=~METHOD_NEED_REST;}
+    if(flags&METHOD_HAS_OPTIONAL) {fprintf(fo, " has_optional");flags&=~METHOD_HAS_OPTIONAL;}
+    if(flags&METHOD_SET_DXNS) {fprintf(fo, " set_dxns");flags&=~METHOD_SET_DXNS;}
+    if(flags&METHOD_HAS_PARAM_NAMES) {fprintf(fo, " has_param_names");flags&=~METHOD_HAS_PARAM_NAMES;}
+    if(flags) fprintf(fo, " %02x", flags);
+    fprintf(fo, "]\n");
+
 
     char prefix2[80];
     sprintf(prefix2, "%s    ", prefix);