Skip to content

Commit acdf63b

Browse files
committed
Get rid of error gotos in HTML5 parse conversion
1 parent 3876225 commit acdf63b

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

ext/dom/html5_parser.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
132132
xmlNodePtr lxml_element = xmlNewDocNode(lxml_doc, NULL, name, NULL);
133133
if (UNEXPECTED(lxml_element == NULL)) {
134134
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
135-
goto out;
135+
break;
136136
}
137137
xmlAddChild(lxml_parent, lxml_element);
138138
lxml_element->line = sanitize_line_nr(node->line);
@@ -175,13 +175,13 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
175175

176176
if (UNEXPECTED(local_name_length >= INT_MAX || value_length >= INT_MAX)) {
177177
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OVERFLOW;
178-
goto out;
178+
break;
179179
}
180180

181181
xmlAttrPtr lxml_attr = xmlMalloc(sizeof(xmlAttr));
182182
if (UNEXPECTED(lxml_attr == NULL)) {
183183
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
184-
goto out;
184+
break;
185185
}
186186

187187
memset(lxml_attr, 0, sizeof(xmlAttr));
@@ -193,7 +193,7 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
193193
if (UNEXPECTED(lxml_text == NULL)) {
194194
xmlFreeProp(lxml_attr);
195195
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
196-
goto out;
196+
break;
197197
}
198198

199199
lxml_attr->children = lxml_attr->last = lxml_text;
@@ -238,12 +238,12 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
238238
size_t data_length = text->char_data.data.length;
239239
if (UNEXPECTED(data_length >= INT_MAX)) {
240240
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OVERFLOW;
241-
goto out;
241+
break;
242242
}
243243
xmlNodePtr lxml_text = lexbor_libxml2_bridge_new_text_node_fast(lxml_doc, data, data_length, compact_text_nodes);
244244
if (UNEXPECTED(lxml_text == NULL)) {
245245
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
246-
goto out;
246+
break;
247247
}
248248
xmlAddChild(lxml_parent, lxml_text);
249249
if (node->line >= USHRT_MAX) {
@@ -266,22 +266,21 @@ static lexbor_libxml2_bridge_status lexbor_libxml2_bridge_convert(
266266
);
267267
if (UNEXPECTED(lxml_dtd == NULL)) {
268268
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
269-
goto out;
269+
break;
270270
}
271271
/* libxml2 doesn't support line numbers on this anyway, it returns -1 instead, so don't bother */
272272
} else if (node->type == LXB_DOM_NODE_TYPE_COMMENT) {
273273
lxb_dom_comment_t *comment = lxb_dom_interface_comment(node);
274274
xmlNodePtr lxml_comment = xmlNewDocComment(lxml_doc, comment->char_data.data.data);
275275
if (UNEXPECTED(lxml_comment == NULL)) {
276276
retval = LEXBOR_LIBXML2_BRIDGE_STATUS_OOM;
277-
goto out;
277+
break;
278278
}
279279
xmlAddChild(lxml_parent, lxml_comment);
280280
lxml_comment->line = sanitize_line_nr(node->line);
281281
}
282282
}
283283

284-
out:
285284
lexbor_array_obj_destroy(&work_list, false);
286285
return retval;
287286
}

0 commit comments

Comments
 (0)