summaryrefslogtreecommitdiff
path: root/src/jsapi-libdom.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2012-10-28 12:45:23 +0000
committerVincent Sanders <vince@kyllikki.org>2012-10-28 12:45:23 +0000
commite23ade7a1bddd550427e57bd54ac79f4263b3b94 (patch)
tree4911e56d547f0d0a7b5b95db99e9e7b5af997636 /src/jsapi-libdom.c
parent971604ee6d295e3b5c5527c15a2e3f5fd34c335c (diff)
downloadnsgenbind-e23ade7a1bddd550427e57bd54ac79f4263b3b94.tar.gz
nsgenbind-e23ade7a1bddd550427e57bd54ac79f4263b3b94.tar.bz2
split class initialisation from instantiation
Diffstat (limited to 'src/jsapi-libdom.c')
-rw-r--r--src/jsapi-libdom.c36
1 files changed, 25 insertions, 11 deletions
diff --git a/src/jsapi-libdom.c b/src/jsapi-libdom.c
index 18915fe..866f8be 100644
--- a/src/jsapi-libdom.c
+++ b/src/jsapi-libdom.c
@@ -417,9 +417,32 @@ output_con_de_structors(struct binding *binding)
"\treturn JS_TRUE;\n"
"}\n\n");
+ /* class Initialisor */
+ fprintf(binding->outfile,
+ "JSObject *jsapi_InitClass_%1$s(JSContext *cx, JSObject *parent)\n"
+ "{\n"
+ "\tJSObject *jsobject;\n"
+ "\n"
+ "\tjsobject = JS_InitClass(cx,\n"
+ "\t\tparent,\n"
+ "\t\tNULL,\n"
+ "\t\t&JSClass_%1$s,\n"
+ "\t\tNULL,\n"
+ "\t\t0,\n"
+ "\t\tjsclass_properties,\n"
+ "\t\tjsclass_functions, \n"
+ "\t\tNULL, \n"
+ "\t\tNULL);\n"
+ "\treturn jsobject;\n"
+ "}\n\n",
+ binding->interface);
+
+
/* constructor */
fprintf(binding->outfile,
- "JSObject *jsapi_new_%s(JSContext *cx,\n\t\tJSObject *parent",
+ "JSObject *jsapi_new_%s(JSContext *cx,\n"
+ "\t\tJSObject *proto,\n"
+ "\t\tJSObject *parent",
binding->interface);
genbind_node_for_each_type(genbind_node_getnode(binding_node),
@@ -445,16 +468,7 @@ output_con_de_structors(struct binding *binding)
fprintf(binding->outfile,
"\n"
- "\tjsobject = JS_InitClass(cx,\n"
- "\t\tparent,\n"
- "\t\tNULL,\n"
- "\t\t&JSClass_%s,\n"
- "\t\tNULL,\n"
- "\t\t0,\n"
- "\t\tjsclass_properties,\n"
- "\t\tjsclass_functions, \n"
- "\t\tNULL, \n"
- "\t\tNULL);\n"
+ "\tjsobject = JS_NewObject(cx, &JSClass_%s, proto, parent);\n"
"\tif (jsobject == NULL) {\n"
"\t\tfree(private);\n"
"\t\treturn NULL;\n"