diff options
author | Vincent Sanders <vince@kyllikki.org> | 2012-10-28 12:45:23 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2012-10-28 12:45:23 +0000 |
commit | e23ade7a1bddd550427e57bd54ac79f4263b3b94 (patch) | |
tree | 4911e56d547f0d0a7b5b95db99e9e7b5af997636 /src/jsapi-libdom.c | |
parent | 971604ee6d295e3b5c5527c15a2e3f5fd34c335c (diff) | |
download | nsgenbind-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.c | 36 |
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" |