Skip to content

Commit 66c8bf9

Browse files
committed
Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0: Fix WeakReference uniquing is TAG_HT is used
2 parents 177f3d2 + 546e558 commit 66c8bf9

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
@@ -214,7 +214,7 @@ static zend_always_inline bool zend_weakref_find(zend_object *referent, zval *re
214214
}
215215

216216
if (tag == ZEND_WEAKREF_TAG_HT) {
217-
ZEND_HASH_FOREACH(ptr, tagged_ptr) {
217+
ZEND_HASH_FOREACH_PTR(ptr, tagged_ptr) {
218218
if (ZEND_WEAKREF_GET_TAG(tagged_ptr) == ZEND_WEAKREF_TAG_REF) {
219219
ptr = ZEND_WEAKREF_GET_PTR(tagged_ptr);
220220
goto found_weakref;

0 commit comments

Comments
 (0)