Skip to content

Commit 59d43a4

Browse files
committed
Merge branch 'PHP-8.1'
* PHP-8.1: Fix WeakReference uniquing is TAG_HT is used
2 parents 4239ec5 + 66c8bf9 commit 59d43a4

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

Zend/tests/weakrefs/weakmap_multiple_weakrefs.phpt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ $map2 = new WeakMap;
1212
$map2[$obj] = 1;
1313
$map3 = clone $map2;
1414

15+
var_dump($ref === WeakReference::create($obj));
1516
var_dump($ref->get(), $map, $map2, $map3);
1617
unset($obj);
1718
var_dump($ref->get(), $map, $map2, $map3);
@@ -31,6 +32,7 @@ unset($obj);
3132

3233
?>
3334
--EXPECT--
35+
bool(true)
3436
object(stdClass)#1 (0) {
3537
}
3638
object(WeakMap)#3 (1) {

Zend/zend_weakrefs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ static zend_always_inline bool zend_weakref_find(zend_object *referent, zval *re
209209
}
210210

211211
if (tag == ZEND_WEAKREF_TAG_HT) {
212-
ZEND_HASH_FOREACH(ptr, tagged_ptr) {
212+
ZEND_HASH_FOREACH_PTR(ptr, tagged_ptr) {
213213
if (ZEND_WEAKREF_GET_TAG(tagged_ptr) == ZEND_WEAKREF_TAG_REF) {
214214
ptr = ZEND_WEAKREF_GET_PTR(tagged_ptr);
215215
goto found_weakref;

0 commit comments

Comments
 (0)