Skip to content

Commit da238e7

Browse files
ext/spl: convert zend_parse_parameters_none() to fast ZPP (#20441)
1 parent 5185d46 commit da238e7

File tree

7 files changed

+115
-345
lines changed

7 files changed

+115
-345
lines changed

ext/spl/php_spl.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,7 @@ PHP_FUNCTION(class_uses)
216216
/* {{{ Return an array containing the names of all classes and interfaces defined in SPL */
217217
PHP_FUNCTION(spl_classes)
218218
{
219-
if (zend_parse_parameters_none() == FAILURE) {
220-
RETURN_THROWS();
221-
}
219+
ZEND_PARSE_PARAMETERS_NONE();
222220

223221
array_init(return_value);
224222

@@ -619,9 +617,7 @@ PHP_FUNCTION(spl_autoload_functions)
619617
{
620618
autoload_func_info *alfi;
621619

622-
if (zend_parse_parameters_none() == FAILURE) {
623-
RETURN_THROWS();
624-
}
620+
ZEND_PARSE_PARAMETERS_NONE();
625621

626622
array_init(return_value);
627623
if (spl_autoload_functions) {

ext/spl/spl_array.c

Lines changed: 15 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -753,9 +753,7 @@ PHP_METHOD(ArrayObject, getArrayCopy)
753753
zval *object = ZEND_THIS;
754754
spl_array_object *intern = Z_SPLARRAY_P(object);
755755

756-
if (zend_parse_parameters_none() == FAILURE) {
757-
RETURN_THROWS();
758-
}
756+
ZEND_PARSE_PARAMETERS_NONE();
759757

760758
RETURN_ARR(zend_array_dup(spl_array_get_hash_table(intern)));
761759
} /* }}} */
@@ -1086,9 +1084,7 @@ PHP_METHOD(ArrayObject, getIteratorClass)
10861084
zval *object = ZEND_THIS;
10871085
spl_array_object *intern = Z_SPLARRAY_P(object);
10881086

1089-
if (zend_parse_parameters_none() == FAILURE) {
1090-
RETURN_THROWS();
1091-
}
1087+
ZEND_PARSE_PARAMETERS_NONE();
10921088

10931089
zend_string_addref(intern->ce_get_iterator->name);
10941090
RETURN_STR(intern->ce_get_iterator->name);
@@ -1101,9 +1097,7 @@ PHP_METHOD(ArrayObject, getFlags)
11011097
zval *object = ZEND_THIS;
11021098
spl_array_object *intern = Z_SPLARRAY_P(object);
11031099

1104-
if (zend_parse_parameters_none() == FAILURE) {
1105-
RETURN_THROWS();
1106-
}
1100+
ZEND_PARSE_PARAMETERS_NONE();
11071101

11081102
RETURN_LONG(intern->ar_flags & ~SPL_ARRAY_INT_MASK);
11091103
}
@@ -1150,9 +1144,7 @@ PHP_METHOD(ArrayObject, getIterator)
11501144
zval *object = ZEND_THIS;
11511145
spl_array_object *intern = Z_SPLARRAY_P(object);
11521146

1153-
if (zend_parse_parameters_none() == FAILURE) {
1154-
RETURN_THROWS();
1155-
}
1147+
ZEND_PARSE_PARAMETERS_NONE();
11561148

11571149
RETURN_OBJ(spl_array_object_new_ex(intern->ce_get_iterator, Z_OBJ_P(object), 0));
11581150
}
@@ -1203,9 +1195,7 @@ PHP_METHOD(ArrayObject, count)
12031195
{
12041196
spl_array_object *intern = Z_SPLARRAY_P(ZEND_THIS);
12051197

1206-
if (zend_parse_parameters_none() == FAILURE) {
1207-
RETURN_THROWS();
1208-
}
1198+
ZEND_PARSE_PARAMETERS_NONE();
12091199

12101200
RETURN_LONG(spl_array_object_count_elements_helper(intern));
12111201
} /* }}} */
@@ -1305,9 +1295,7 @@ PHP_METHOD(ArrayObject, serialize)
13051295
php_serialize_data_t var_hash;
13061296
smart_str buf = {0};
13071297

1308-
if (zend_parse_parameters_none() == FAILURE) {
1309-
RETURN_THROWS();
1310-
}
1298+
ZEND_PARSE_PARAMETERS_NONE();
13111299

13121300
PHP_VAR_SERIALIZE_INIT(var_hash);
13131301

@@ -1453,9 +1441,7 @@ PHP_METHOD(ArrayObject, __serialize)
14531441
spl_array_object *intern = Z_SPLARRAY_P(ZEND_THIS);
14541442
zval tmp;
14551443

1456-
if (zend_parse_parameters_none() == FAILURE) {
1457-
RETURN_THROWS();
1458-
}
1444+
ZEND_PARSE_PARAMETERS_NONE();
14591445

14601446
array_init(return_value);
14611447

@@ -1559,9 +1545,7 @@ PHP_METHOD(ArrayObject, __unserialize)
15591545
/* {{{ */
15601546
PHP_METHOD(ArrayObject, __debugInfo)
15611547
{
1562-
if (zend_parse_parameters_none() == FAILURE) {
1563-
RETURN_THROWS();
1564-
}
1548+
ZEND_PARSE_PARAMETERS_NONE();
15651549

15661550
RETURN_ARR(spl_array_get_debug_info(Z_OBJ_P(ZEND_THIS)));
15671551
} /* }}} */
@@ -1739,9 +1723,7 @@ PHP_METHOD(ArrayIterator, rewind)
17391723
zval *object = ZEND_THIS;
17401724
spl_array_object *intern = Z_SPLARRAY_P(object);
17411725

1742-
if (zend_parse_parameters_none() == FAILURE) {
1743-
RETURN_THROWS();
1744-
}
1726+
ZEND_PARSE_PARAMETERS_NONE();
17451727

17461728
spl_array_rewind(intern);
17471729
}
@@ -1783,9 +1765,7 @@ PHP_METHOD(ArrayIterator, current)
17831765
zval *entry;
17841766
HashTable *aht = spl_array_get_hash_table(intern);
17851767

1786-
if (zend_parse_parameters_none() == FAILURE) {
1787-
RETURN_THROWS();
1788-
}
1768+
ZEND_PARSE_PARAMETERS_NONE();
17891769

17901770
if ((entry = zend_hash_get_current_data_ex(aht, spl_array_get_pos_ptr(aht, intern))) == NULL) {
17911771
RETURN_NULL();
@@ -1812,9 +1792,7 @@ void spl_array_iterator_key(zval *object, zval *return_value) /* {{{ */
18121792
/* {{{ Return current array key */
18131793
PHP_METHOD(ArrayIterator, key)
18141794
{
1815-
if (zend_parse_parameters_none() == FAILURE) {
1816-
RETURN_THROWS();
1817-
}
1795+
ZEND_PARSE_PARAMETERS_NONE();
18181796

18191797
spl_array_iterator_key(ZEND_THIS, return_value);
18201798
} /* }}} */
@@ -1826,9 +1804,7 @@ PHP_METHOD(ArrayIterator, next)
18261804
spl_array_object *intern = Z_SPLARRAY_P(object);
18271805
HashTable *aht = spl_array_get_hash_table(intern);
18281806

1829-
if (zend_parse_parameters_none() == FAILURE) {
1830-
RETURN_THROWS();
1831-
}
1807+
ZEND_PARSE_PARAMETERS_NONE();
18321808

18331809
spl_array_next_ex(intern, aht);
18341810
}
@@ -1841,9 +1817,7 @@ PHP_METHOD(ArrayIterator, valid)
18411817
spl_array_object *intern = Z_SPLARRAY_P(object);
18421818
HashTable *aht = spl_array_get_hash_table(intern);
18431819

1844-
if (zend_parse_parameters_none() == FAILURE) {
1845-
RETURN_THROWS();
1846-
}
1820+
ZEND_PARSE_PARAMETERS_NONE();
18471821

18481822
RETURN_BOOL(zend_hash_has_more_elements_ex(aht, spl_array_get_pos_ptr(aht, intern)) == SUCCESS);
18491823
}
@@ -1858,9 +1832,7 @@ PHP_METHOD(RecursiveArrayIterator, hasChildren)
18581832
spl_array_object *intern = Z_SPLARRAY_P(object);
18591833
HashTable *aht = spl_array_get_hash_table(intern);
18601834

1861-
if (zend_parse_parameters_none() == FAILURE) {
1862-
RETURN_THROWS();
1863-
}
1835+
ZEND_PARSE_PARAMETERS_NONE();
18641836

18651837
if ((entry = zend_hash_get_current_data_ex(aht, spl_array_get_pos_ptr(aht, intern))) == NULL) {
18661838
RETURN_FALSE;
@@ -1898,9 +1870,7 @@ PHP_METHOD(RecursiveArrayIterator, getChildren)
18981870
spl_array_object *intern = Z_SPLARRAY_P(object);
18991871
HashTable *aht = spl_array_get_hash_table(intern);
19001872

1901-
if (zend_parse_parameters_none() == FAILURE) {
1902-
RETURN_THROWS();
1903-
}
1873+
ZEND_PARSE_PARAMETERS_NONE();
19041874

19051875
if ((entry = zend_hash_get_current_data_ex(aht, spl_array_get_pos_ptr(aht, intern))) == NULL) {
19061876
RETURN_NULL();

0 commit comments

Comments
 (0)