Skip to content

Commit 2cfcfe0

Browse files
authored
Convert more common methods in dom/node.c to fast ZPP (#15043)
1 parent 2946622 commit 2cfcfe0

File tree

1 file changed

+30
-39
lines changed

1 file changed

+30
-39
lines changed

ext/dom/node.c

Lines changed: 30 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,9 +1475,7 @@ PHP_METHOD(DOMNode, normalize)
14751475
dom_object *intern;
14761476

14771477
id = ZEND_THIS;
1478-
if (zend_parse_parameters_none() == FAILURE) {
1479-
RETURN_THROWS();
1480-
}
1478+
ZEND_PARSE_PARAMETERS_NONE();
14811479

14821480
DOM_GET_OBJ(nodep, id, xmlNodePtr, intern);
14831481

@@ -1543,19 +1541,19 @@ static void dom_node_is_same_node(INTERNAL_FUNCTION_PARAMETERS, zval *node)
15431541
PHP_METHOD(DOMNode, isSameNode)
15441542
{
15451543
zval *node;
1546-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &node, dom_node_class_entry) != SUCCESS) {
1547-
RETURN_THROWS();
1548-
}
1544+
ZEND_PARSE_PARAMETERS_START(1, 1)
1545+
Z_PARAM_OBJECT_OF_CLASS(node, dom_node_class_entry)
1546+
ZEND_PARSE_PARAMETERS_END();
15491547

15501548
dom_node_is_same_node(INTERNAL_FUNCTION_PARAM_PASSTHRU, node);
15511549
}
15521550

15531551
PHP_METHOD(Dom_Node, isSameNode)
15541552
{
15551553
zval *node;
1556-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O!", &node, dom_modern_node_class_entry) != SUCCESS) {
1557-
RETURN_THROWS();
1558-
}
1554+
ZEND_PARSE_PARAMETERS_START(1, 1)
1555+
Z_PARAM_OBJECT_OF_CLASS_OR_NULL(node, dom_modern_node_class_entry)
1556+
ZEND_PARSE_PARAMETERS_END();
15591557

15601558
if (node == NULL) {
15611559
RETURN_FALSE;
@@ -1722,9 +1720,9 @@ static void dom_node_is_equal_node_common(INTERNAL_FUNCTION_PARAMETERS, bool mod
17221720
dom_object *intern;
17231721

17241722
id = ZEND_THIS;
1725-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O!", &node, dom_get_node_ce(modern)) == FAILURE) {
1726-
RETURN_THROWS();
1727-
}
1723+
ZEND_PARSE_PARAMETERS_START(1, 1)
1724+
Z_PARAM_OBJECT_OF_CLASS_OR_NULL(node, dom_get_node_ce(modern))
1725+
ZEND_PARSE_PARAMETERS_END();
17281726

17291727
if (node == NULL) {
17301728
RETURN_FALSE;
@@ -1936,9 +1934,9 @@ PHP_METHOD(DOMNode, isDefaultNamespace)
19361934
size_t uri_len = 0;
19371935
char *uri;
19381936

1939-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &uri, &uri_len) != SUCCESS) {
1940-
RETURN_THROWS();
1941-
}
1937+
ZEND_PARSE_PARAMETERS_START(1, 1)
1938+
Z_PARAM_STRING(uri, uri_len)
1939+
ZEND_PARSE_PARAMETERS_END();
19421940

19431941
DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern);
19441942

@@ -1967,9 +1965,9 @@ PHP_METHOD(Dom_Node, isDefaultNamespace)
19671965
size_t uri_len = 0;
19681966
char *uri;
19691967

1970-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s!", &uri, &uri_len) != SUCCESS) {
1971-
RETURN_THROWS();
1972-
}
1968+
ZEND_PARSE_PARAMETERS_START(1, 1)
1969+
Z_PARAM_STRING_OR_NULL(uri, uri_len)
1970+
ZEND_PARSE_PARAMETERS_END();
19731971

19741972
DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern);
19751973

@@ -1994,9 +1992,9 @@ PHP_METHOD(DOMNode, lookupNamespaceURI)
19941992
zend_string *prefix;
19951993

19961994
id = ZEND_THIS;
1997-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S!", &prefix) == FAILURE) {
1998-
RETURN_THROWS();
1999-
}
1995+
ZEND_PARSE_PARAMETERS_START(1, 1)
1996+
Z_PARAM_STR_OR_NULL(prefix)
1997+
ZEND_PARSE_PARAMETERS_END();
20001998

20011999
DOM_GET_OBJ(nodep, id, xmlNodePtr, intern);
20022000

@@ -2236,9 +2234,7 @@ static void dom_node_get_node_path(INTERNAL_FUNCTION_PARAMETERS, bool throw)
22362234
dom_object *intern;
22372235
char *value;
22382236

2239-
if (zend_parse_parameters_none() == FAILURE) {
2240-
RETURN_THROWS();
2241-
}
2237+
ZEND_PARSE_PARAMETERS_NONE();
22422238

22432239
DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern);
22442240

@@ -2275,9 +2271,7 @@ PHP_METHOD(DOMNode, getLineNo)
22752271
xmlNode *nodep;
22762272
dom_object *intern;
22772273

2278-
if (zend_parse_parameters_none() == FAILURE) {
2279-
RETURN_THROWS();
2280-
}
2274+
ZEND_PARSE_PARAMETERS_NONE();
22812275

22822276
DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern);
22832277

@@ -2357,9 +2351,10 @@ PHP_METHOD(DOMNode, getRootNode)
23572351
/* Unused now because we don't support the shadow DOM nodes. Options only influence shadow DOM nodes. */
23582352
zval *options;
23592353

2360-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|a!", &options) != SUCCESS) {
2361-
RETURN_THROWS();
2362-
}
2354+
ZEND_PARSE_PARAMETERS_START(0, 1)
2355+
Z_PARAM_OPTIONAL
2356+
Z_PARAM_ARRAY_OR_NULL(options)
2357+
ZEND_PARSE_PARAMETERS_END();
23632358

23642359
DOM_GET_THIS_OBJ(thisp, id, xmlNodePtr, intern);
23652360

@@ -2388,9 +2383,9 @@ static void dom_node_compare_document_position(INTERNAL_FUNCTION_PARAMETERS, zen
23882383
xmlNodePtr other, this;
23892384
dom_object *this_intern, *other_intern;
23902385

2391-
if (zend_parse_parameters(ZEND_NUM_ARGS(), "O", &node_zval, node_ce) != SUCCESS) {
2392-
RETURN_THROWS();
2393-
}
2386+
ZEND_PARSE_PARAMETERS_START(1, 1)
2387+
Z_PARAM_OBJECT_OF_CLASS(node_zval, node_ce)
2388+
ZEND_PARSE_PARAMETERS_END();
23942389

23952390
DOM_GET_THIS_OBJ(this, id, xmlNodePtr, this_intern);
23962391
DOM_GET_OBJ(other, node_zval, xmlNodePtr, other_intern);
@@ -2563,19 +2558,15 @@ PHP_METHOD(Dom_Node, __construct)
25632558

25642559
PHP_METHOD(DOMNode, __sleep)
25652560
{
2566-
if (zend_parse_parameters_none() != SUCCESS) {
2567-
RETURN_THROWS();
2568-
}
2561+
ZEND_PARSE_PARAMETERS_NONE();
25692562

25702563
zend_throw_exception_ex(NULL, 0, "Serialization of '%s' is not allowed, unless serialization methods are implemented in a subclass", ZSTR_VAL(Z_OBJCE_P(ZEND_THIS)->name));
25712564
RETURN_THROWS();
25722565
}
25732566

25742567
PHP_METHOD(DOMNode, __wakeup)
25752568
{
2576-
if (zend_parse_parameters_none() != SUCCESS) {
2577-
RETURN_THROWS();
2578-
}
2569+
ZEND_PARSE_PARAMETERS_NONE();
25792570

25802571
zend_throw_exception_ex(NULL, 0, "Unserialization of '%s' is not allowed, unless unserialization methods are implemented in a subclass", ZSTR_VAL(Z_OBJCE_P(ZEND_THIS)->name));
25812572
RETURN_THROWS();

0 commit comments

Comments
 (0)