From 334f7f4ada5d2a905654559f0baf1ec33c6b1a87 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Tue, 4 Jan 2022 17:00:49 -0800 Subject: [PATCH] addressed a couple of memory leaks in ZAM execution --- src/script_opt/ZAM/Gen-ZAM.cc | 4 ++-- src/script_opt/ZAM/Ops.in | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/script_opt/ZAM/Gen-ZAM.cc b/src/script_opt/ZAM/Gen-ZAM.cc index f81e74b7bc..92948b4d84 100644 --- a/src/script_opt/ZAM/Gen-ZAM.cc +++ b/src/script_opt/ZAM/Gen-ZAM.cc @@ -1386,8 +1386,8 @@ void ZAM_ExprOpTemplate::InstantiateEval(const vector& ot_orig, auto is_none = ei.LHS_ET() == ZAM_EXPR_TYPE_NONE; auto is_default = ei.LHS_ET() == ZAM_EXPR_TYPE_DEFAULT; - if ( zc != ZIC_FIELD && ! is_none && ! is_default && - find_type_info(ei.LHS_ET()).is_managed && ! HasExplicitResultType() ) + if ( ! is_none && ! is_default && find_type_info(ei.LHS_ET()).is_managed && + ! HasExplicitResultType() ) { auto delim = zc == ZIC_VEC ? "->" : "."; auto pre = "auto hold_lhs = " + lhs + delim + "ManagedVal();\n\t"; diff --git a/src/script_opt/ZAM/Ops.in b/src/script_opt/ZAM/Ops.in index 71f1760694..2ba97d526d 100644 --- a/src/script_opt/ZAM/Ops.in +++ b/src/script_opt/ZAM/Ops.in @@ -1669,7 +1669,7 @@ internal-op Next-Table-Iter-Val-Var # v3 = branch target if loop done type VVV eval NextTableIterPre(v2, v3) - frame[z.v1] = ti.IterValue(); + AssignV1(ti.IterValue()); ti.NextIter(frame); internal-op Next-Table-Iter-Val-Var-No-Vars @@ -1678,7 +1678,7 @@ internal-op Next-Table-Iter-Val-Var-No-Vars # v3 = branch target if loop done type VVV eval NextTableIterPre(v2, v3) - frame[z.v1] = ti.IterValue(); + AssignV1(ti.IterValue()); ti.IterFinished();