summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2018-04-22 13:22:20 (GMT)
committerdgp <dgp@users.sourceforge.net>2018-04-22 13:22:20 (GMT)
commit8e06fd796be19c40e0e82a7d9c9e54d34e975504 (patch)
tree1f5c600fce4cc1e96f2664bb6e4125912342035a /generic/tclExecute.c
parentae76fbd559e8e30a6cb4c448bf4c924cbd79841b (diff)
downloadtcl-8e06fd796be19c40e0e82a7d9c9e54d34e975504.zip
tcl-8e06fd796be19c40e0e82a7d9c9e54d34e975504.tar.gz
tcl-8e06fd796be19c40e0e82a7d9c9e54d34e975504.tar.bz2
[46a2410650] compiled [unset] was bypassing cleanup of active array search.
Overdue thanks to Andy Goth for tests and report.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 5bc5c2d..af44323 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -4169,7 +4169,8 @@ TEBCresume(
}
TRACE(("%s %u \"%.30s\" => ",
(flags ? "normal" : "noerr"), opnd, O2S(part2Ptr)));
- if (TclIsVarArray(arrayPtr) && !UnsetTraced(arrayPtr)) {
+ if (TclIsVarArray(arrayPtr) && !UnsetTraced(arrayPtr)
+ && !(arrayPtr->flags & VAR_SEARCH_ACTIVE)) {
varPtr = VarHashFindVar(arrayPtr->value.tablePtr, part2Ptr);
if (varPtr && TclIsVarDirectUnsettable(varPtr)) {
/*