when reading code, make sure it's a correct doubly linked list
[swftools.git] / lib / as3 / code.c
index 67c0d4e..b125c95 100644 (file)
@@ -292,6 +292,7 @@ code_t*code_parse(TAG*tag, int len, abc_file_t*file, pool_t*pool, codelookup_t**
             head = code = c;
         } else {
             code->next = c;
+            c->prev = code;
             code = c;
         }
 
@@ -910,11 +911,11 @@ int code_dump2(code_t*c, abc_exception_list_t*exceptions, abc_file_t*file, char*
                     free(m);
                 } else if(*p == 'm') {
                     abc_method_t*m = (abc_method_t*)data;
-                    fprintf(fo, "[method %08x %s]", m, m->name);
+                    fprintf(fo, "[method %08x %s]", m->index, m->name);
                 } else if(*p == 'c') {
                     abc_class_t*cls = (abc_class_t*)data;
                     char*classname = multiname_tostring(cls->classname);
-                    fprintf(fo, "[classinfo %s]", classname);
+                    fprintf(fo, "[classinfo %08x %s]", cls->index, classname);
                     free(classname);
                 } else if(*p == 'i') {
                     abc_method_body_t*b = (abc_method_body_t*)data;