diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2014-07-12 16:15:22 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2014-07-12 16:15:22 (GMT) |
commit | 985b5f8a7463d8ef8400d49bceb87b402ed70e59 (patch) | |
tree | 488c380d0ec7f4f0e06a4eda59cfddabf2bcc0e3 /generic/tclExecute.c | |
parent | 7bea42569d8c2ccb8584155f706392d5812ec428 (diff) | |
parent | 74d71bafde63ca49cecadc990df7b3a2d7797849 (diff) | |
download | tcl-bug_d5ddbc7f49.zip tcl-bug_d5ddbc7f49.tar.gz tcl-bug_d5ddbc7f49.tar.bz2 |
merge trunkbug_d5ddbc7f49
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index d8c5935..2f9aac3 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -7474,6 +7474,14 @@ TEBCresume( searchPtr = ckalloc(sizeof(Tcl_DictSearch)); if (Tcl_DictObjFirst(interp, dictPtr, searchPtr, &keyPtr, &valuePtr, &done) != TCL_OK) { + + /* + * dictPtr is no longer on the stack, and we're not + * moving it into the intrep of an iterator. We need + * to drop the refcount [Tcl Bug 9b352768e6]. + */ + + Tcl_DecrRefCount(dictPtr); ckfree(searchPtr); TRACE_ERROR(interp); goto gotError; |