mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-22 04:02:34 +03:00
safely deal with NULL strings
This commit is contained in:
parent
c5fb16d56d
commit
e36b8f6579
@ -181,19 +181,22 @@ operation createTextNode %{
|
||||
dom_exception exc;
|
||||
dom_text *text;
|
||||
|
||||
JSLOG("Creating text node for string \"%s\"", data);
|
||||
exc = dom_string_create((unsigned char*)data, data_len, &data_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
if (data != NULL) {
|
||||
|
||||
exc = dom_document_create_text_node(private->node, data_dom, &text);
|
||||
dom_string_unref(data_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
JSLOG("Creating text node for string \"%s\"", data);
|
||||
exc = dom_string_create((unsigned char*)data, data_len, &data_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
jsret = jsapi_new_Text(cx, NULL, NULL, text, private->htmlc);
|
||||
exc = dom_document_create_text_node(private->node, data_dom, &text);
|
||||
dom_string_unref(data_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
jsret = jsapi_new_Text(cx, NULL, NULL, text, private->htmlc);
|
||||
}
|
||||
|
||||
JSLOG("returning jsobject %p",jsret);
|
||||
|
||||
@ -205,19 +208,21 @@ operation createElement %{
|
||||
dom_exception exc;
|
||||
dom_element *element;
|
||||
|
||||
JSLOG("Creating text node for string \"%s\"", localName);
|
||||
exc = dom_string_create((unsigned char*)localName, localName_len, &localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
if (localName != NULL) {
|
||||
JSLOG("Creating text node for string \"%s\"", localName);
|
||||
exc = dom_string_create((unsigned char*)localName, localName_len, &localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
exc = dom_document_create_element(private->node, localName_dom, &element);
|
||||
dom_string_unref(localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
exc = dom_document_create_element(private->node, localName_dom, &element);
|
||||
dom_string_unref(localName_dom);
|
||||
if (exc != DOM_NO_ERR) {
|
||||
return JS_FALSE;
|
||||
}
|
||||
|
||||
jsret = jsapi_new_HTMLElement(cx, NULL, NULL, element, private->htmlc);
|
||||
jsret = jsapi_new_HTMLElement(cx, NULL, NULL, element, private->htmlc);
|
||||
}
|
||||
|
||||
JSLOG("returning jsobject %p",jsret);
|
||||
|
||||
|
@ -15,6 +15,12 @@ function output(x,y) {
|
||||
}
|
||||
for(var key in Node){
|
||||
output(key, Node[key]);
|
||||
}
|
||||
|
||||
document.body.appendChild(document.createElement('hr'));
|
||||
|
||||
for(var key in document.body){
|
||||
output(key, document.body[key]);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user