new function abc_method_init()
authorMatthias Kramm <kramm@quiss.org>
Tue, 3 Feb 2009 18:48:00 +0000 (19:48 +0100)
committerMatthias Kramm <kramm@quiss.org>
Tue, 3 Feb 2009 18:48:00 +0000 (19:48 +0100)
lib/as3/abc.c
lib/as3/abc.h

index 4375300..30e5616 100644 (file)
@@ -157,10 +157,9 @@ void abc_class_add_interface(abc_class_t*c, multiname_t*interface)
     list_append(c->interfaces, multiname_clone(interface));
 }
 
-abc_method_t* abc_method_new(abc_file_t*file, multiname_t*returntype, char body)
+void abc_method_init(abc_method_t*m, abc_file_t*file, multiname_t*returntype, char body)
 {
     /* construct method object */
-    NEW(abc_method_t,m);
     m->index = array_length(file->methods);
     array_append(file->methods, NO_KEY, m);
     m->return_type = returntype;
@@ -178,7 +177,11 @@ abc_method_t* abc_method_new(abc_file_t*file, multiname_t*returntype, char body)
         m->body = c;
         c->method = m;
     }
-
+}
+abc_method_t* abc_method_new(abc_file_t*file, multiname_t*returntype, char body)
+{
+    NEW(abc_method_t,m);
+    abc_method_init(m, file, returntype, body);
     return m;
 }
 
index 8e7cf81..9586dfe 100644 (file)
@@ -138,6 +138,7 @@ struct _abc_class {
     int index; //filled in during writing
 };
 
+void abc_method_init(abc_method_t*m, abc_file_t*file, multiname_t*returntype, char body);
 abc_method_t* abc_method_new(abc_file_t*file, multiname_t*returntype, char body);
 
 abc_class_t* abc_class_new(abc_file_t*file, multiname_t*classname, multiname_t*superclass);