From 64e3eec5c1af505e82688bee0175655d6f48ace7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20=C5=BDaliaduonis?= <43949022+martynaszaliaduonis@users.noreply.github.com> Date: Mon, 11 Aug 2025 22:50:07 +0300 Subject: [PATCH] Properly set object without leaking a reference --- src/lib.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 044bdf8..1e68885 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -11298,27 +11298,27 @@ impl IntoZval for PHPValue { PHPValue::GeoJSON(s) => { let geo = GeoJSON { v: s }; let zo: ZBox = geo.into_zend_object()?; - zv.set_object(zo.into_raw()); + zo.set_zval(zv, persistent)?; } PHPValue::Blob(b) => { let blob = BLOB { v: b }; let zo: ZBox = blob.into_zend_object()?; - zv.set_object(zo.into_raw()); + zo.set_zval(zv, persistent)?; } PHPValue::HLL(b) => { let hll = HLL { v: b }; let zo: ZBox = hll.into_zend_object()?; - zv.set_object(zo.into_raw()); + zo.set_zval(zv, persistent)?; } PHPValue::Infinity => { let inf = Infinity {}; let zo: ZBox = inf.into_zend_object()?; - zv.set_object(zo.into_raw()); + zo.set_zval(zv, persistent)?; } PHPValue::Wildcard => { let inf = Wildcard {}; let zo: ZBox = inf.into_zend_object()?; - zv.set_object(zo.into_raw()); + zo.set_zval(zv, persistent)?; } } @@ -12124,7 +12124,7 @@ fn get_persisted_client(key: &str) -> Option { let mut zval = Zval::new(); let zo: ZBox = client.into_zend_object().ok()?; - zval.set_object(zo.into_raw()); + zo.set_zval(&mut zval, false).ok()?; Some(zval) }