diff --git a/Zend/tests/weakrefs/gh20073.phpt b/Zend/tests/weakrefs/gh20073.phpt new file mode 100644 index 00000000000..b64c1a68d3c --- /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 4830089e509..518d2d8eb9e 100644 --- a/Zend/zend_weakrefs.c +++ b/Zend/zend_weakrefs.c @@ -731,7 +731,7 @@ ZEND_METHOD(WeakMap, offsetGet) RETURN_THROWS(); } - ZVAL_COPY(return_value, zv); + RETURN_COPY_DEREF(zv); } ZEND_METHOD(WeakMap, offsetSet)