diff --git a/Zend/tests/weakrefs/weakmap_multiple_weakrefs.phpt b/Zend/tests/weakrefs/weakmap_multiple_weakrefs.phpt index c3a1edaf058..43bbec95596 100644 --- a/Zend/tests/weakrefs/weakmap_multiple_weakrefs.phpt +++ b/Zend/tests/weakrefs/weakmap_multiple_weakrefs.phpt @@ -12,6 +12,7 @@ $map2 = new WeakMap; $map2[$obj] = 1; $map3 = clone $map2; +var_dump($ref === WeakReference::create($obj)); var_dump($ref->get(), $map, $map2, $map3); unset($obj); var_dump($ref->get(), $map, $map2, $map3); @@ -31,6 +32,7 @@ unset($obj); ?> --EXPECT-- +bool(true) object(stdClass)#1 (0) { } object(WeakMap)#3 (1) { diff --git a/Zend/zend_weakrefs.c b/Zend/zend_weakrefs.c index 74afd3e496f..80f0290c230 100644 --- a/Zend/zend_weakrefs.c +++ b/Zend/zend_weakrefs.c @@ -214,7 +214,7 @@ found_weakref: } if (tag == ZEND_WEAKREF_TAG_HT) { - ZEND_HASH_FOREACH(ptr, tagged_ptr) { + ZEND_HASH_FOREACH_PTR(ptr, tagged_ptr) { if (ZEND_WEAKREF_GET_TAG(tagged_ptr) == ZEND_WEAKREF_TAG_REF) { ptr = ZEND_WEAKREF_GET_PTR(tagged_ptr); goto found_weakref;