diff --git a/Zend/tests/weakrefs/gh20073.phpt b/Zend/tests/weakrefs/gh20073.phpt new file mode 100644 index 0000000000000..b64c1a68d3cc0 --- /dev/null +++ b/Zend/tests/weakrefs/gh20073.phpt @@ -0,0 +1,15 @@ +--TEST-- +GH-20073 (Assertion failure in WeakMap offset operations on reference) +--FILE-- +offsetGet($obj)); +?> +--EXPECT-- +int(2) +int(2) diff --git a/Zend/zend_weakrefs.c b/Zend/zend_weakrefs.c index e96e68e3b2743..cffaeb985aed2 100644 --- a/Zend/zend_weakrefs.c +++ b/Zend/zend_weakrefs.c @@ -702,7 +702,7 @@ ZEND_METHOD(WeakMap, offsetGet) return; } - ZVAL_COPY(return_value, zv); + RETURN_COPY_DEREF(zv); } ZEND_METHOD(WeakMap, offsetSet)