From 04ff5bead9e5b272c808b9ac101ad04201843f66 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Wed, 6 Nov 2024 08:25:40 -0800 Subject: [PATCH] fixed ZAM memory leak when looping over vectors of records --- src/script_opt/ZAM/OPs/iterations.op | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/script_opt/ZAM/OPs/iterations.op b/src/script_opt/ZAM/OPs/iterations.op index 92c4895b62..0ac8672388 100644 --- a/src/script_opt/ZAM/OPs/iterations.op +++ b/src/script_opt/ZAM/OPs/iterations.op @@ -77,7 +77,10 @@ op-types U X I I eval NextVectorIterCore($2, $3) $$ = $2.iter; if ( Z_IS_MANAGED ) + { + ZVal::DeleteManagedType($1); $1 = BuildVal(vv[$2.iter]->ToVal(Z_TYPE), Z_TYPE); + } else $1 = *vv[$2.iter]; $2.IterFinished(); @@ -87,7 +90,10 @@ internal-op Next-Vector-Blank-Iter-Val-Var class Vsb eval NextVectorIterCore($1, $2) if ( Z_IS_MANAGED ) + { + ZVal::DeleteManagedType($$); $$ = BuildVal(vv[$1.iter]->ToVal(Z_TYPE), Z_TYPE); + } else $$ = *vv[$1.iter]; $1.IterFinished();