summaryrefslogtreecommitdiff
path: root/Zend/zend_weakrefs.c
diff options
context:
space:
mode:
authorSara Golemon <pollita@php.net>2020-08-07 14:31:52 +0000
committerSara Golemon <pollita@php.net>2020-12-01 18:36:21 +0000
commit1071d857645e89578925fab0d1998fbb3b0d7534 (patch)
treef33ed81184c5fb942d9486da367b95e4a5ba8fd1 /Zend/zend_weakrefs.c
parent0811ccb44d689f5692056260ed28c500e3eb6591 (diff)
downloadphp-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 'Zend/zend_weakrefs.c')
-rw-r--r--Zend/zend_weakrefs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Zend/zend_weakrefs.c b/Zend/zend_weakrefs.c
index 04c5043210..85b56518ab 100644
--- a/Zend/zend_weakrefs.c
+++ b/Zend/zend_weakrefs.c
@@ -402,12 +402,12 @@ static HashTable *zend_weakmap_get_properties_for(zend_object *object, zend_prop
zend_ulong obj_addr;
zval *val;
ZEND_HASH_FOREACH_NUM_KEY_VAL(&wm->ht, obj_addr, val) {
+ zend_object *obj = (zend_object*)obj_addr;
zval pair;
- zval obj_zv;
array_init(&pair);
- ZVAL_OBJ_COPY(&obj_zv, (zend_object *) obj_addr);
- add_assoc_zval(&pair, "key", &obj_zv);
+ GC_ADDREF(obj);
+ add_assoc_object(&pair, "key", obj);
Z_TRY_ADDREF_P(val);
add_assoc_zval(&pair, "value", val);