summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vincent.sanders@collabora.co.uk>2012-11-16 15:27:50 +0000
committerVincent Sanders <vincent.sanders@collabora.co.uk>2012-11-16 15:27:50 +0000
commitbb6e9d7f5f71677aa4fc79fed01919ea0bbb20c4 (patch)
tree04b7e723ddda6a7d191fa854ce4fd1eaaf5ce6a1
parent52a0b403fca3b37434c7ed5343d25dcae8734e0b (diff)
downloadnsgenbind-bb6e9d7f5f71677aa4fc79fed01919ea0bbb20c4.tar.gz
nsgenbind-bb6e9d7f5f71677aa4fc79fed01919ea0bbb20c4.tar.bz2
correctly deal with missing strings in parameters
-rw-r--r--src/jsapi-libdom-operator.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/jsapi-libdom-operator.c b/src/jsapi-libdom-operator.c
index c3084f7..2aaf114 100644
--- a/src/jsapi-libdom-operator.c
+++ b/src/jsapi-libdom-operator.c
@@ -33,7 +33,7 @@ static int webidl_func_spec_cb(struct webidl_node *node, void *ctx)
*/
} else {
fprintf(binding->outfile,
- "\tJSAPI_FS(%s, 0, 0 /* JSPROP_ENUMERATE */),\n",
+ "\tJSAPI_FS(%s, 0, JSPROP_ENUMERATE ),\n",
webidl_node_gettext(ident_node));
/* @todo number of args to that FN_FS() call should be correct */
}
@@ -642,15 +642,13 @@ output_operation_input(struct binding *binding,
/* JSString * */
fprintf(binding->outfile,
"\tif (argc > %d) {\n"
- "\t%s_jsstr = JS_ValueToString(cx, argv[%d]);\n"
- "\tif (%s_jsstr == NULL) {\n"
- "\t\treturn JS_FALSE;\n"
- "\t}\n\n"
- "\tJSString_to_char(%s_jsstr, %s, %s_len);\n"
+ "\t\t%s_jsstr = JS_ValueToString(cx, argv[%d]);\n"
"\t} else {\n"
- "\t\t%s = NULL;"
- "\t\t%s_len = 0;"
- "\t}\n",
+ "\t\t%s_jsstr = JS_ValueToString(cx, JSVAL_VOID);\n"
+ "\t}\n"
+ "\tif (%s_jsstr != NULL) {\n"
+ "\t\tJSString_to_char(%s_jsstr, %s, %s_len);\n"
+ "\t}\n\n",
arg_cur,
webidl_node_gettext(arg_ident),
arg_cur,
@@ -658,7 +656,6 @@ output_operation_input(struct binding *binding,
webidl_node_gettext(arg_ident),
webidl_node_gettext(arg_ident),
webidl_node_gettext(arg_ident),
- webidl_node_gettext(arg_ident),
webidl_node_gettext(arg_ident));
break;