diff options
author | Sara Golemon <pollita@php.net> | 2020-08-07 14:31:52 +0000 |
---|---|---|
committer | Sara Golemon <pollita@php.net> | 2020-12-01 18:36:21 +0000 |
commit | 1071d857645e89578925fab0d1998fbb3b0d7534 (patch) | |
tree | f33ed81184c5fb942d9486da367b95e4a5ba8fd1 /ext/spl/php_spl.c | |
parent | 0811ccb44d689f5692056260ed28c500e3eb6591 (diff) | |
download | php-git-1071d857645e89578925fab0d1998fbb3b0d7534.tar.gz |
Flesh out HashTable insertion APIs
Fills out the array/object-property insert helpers for zend_array, zend_object, and zend_reference.
This adds the following matrix of 18 APIs
add_next_index_T()
add_index_T()
add_assoc_T()
add_assoc_T_ex()
add_property_T()
add_property_T_ex()
Where T in array, object, reference
Converted internal callsites currently doing an explicit object wrap.
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r-- | ext/spl/php_spl.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c index 09c876b45f..8afdb833e7 100644 --- a/ext/spl/php_spl.c +++ b/ext/spl/php_spl.c @@ -604,17 +604,15 @@ PHP_FUNCTION(spl_autoload_functions) if (SPL_G(autoload_functions)) { ZEND_HASH_FOREACH_PTR(SPL_G(autoload_functions), alfi) { if (alfi->closure) { - zval obj_zv; - ZVAL_OBJ_COPY(&obj_zv, alfi->closure); - add_next_index_zval(return_value, &obj_zv); + GC_ADDREF(alfi->closure); + add_next_index_object(return_value, alfi->closure); } else if (alfi->func_ptr->common.scope) { zval tmp; array_init(&tmp); if (alfi->obj) { - zval obj_zv; - ZVAL_OBJ_COPY(&obj_zv, alfi->obj); - add_next_index_zval(&tmp, &obj_zv); + GC_ADDREF(alfi->obj); + add_next_index_object(&tmp, alfi->obj); } else { add_next_index_str(&tmp, zend_string_copy(alfi->ce->name)); } |