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();