summaryrefslogtreecommitdiffstats
path: root/generic/tclIO.c
diff options
context:
space:
mode:
authordgp@users.sourceforge.net <dgp>2012-07-24 20:14:23 (GMT)
committerdgp@users.sourceforge.net <dgp>2012-07-24 20:14:23 (GMT)
commit68f5c64b3e8c846f685e774e0ed438fbbcd99691 (patch)
treed192390029224aa5a71eb79c10e635a9d544aff9 /generic/tclIO.c
parentd32b28ac5c720a5f044794db6d7f12ec2c5c9760 (diff)
downloadtcl-68f5c64b3e8c846f685e774e0ed438fbbcd99691.zip
tcl-68f5c64b3e8c846f685e774e0ed438fbbcd99691.tar.gz
tcl-68f5c64b3e8c846f685e774e0ed438fbbcd99691.tar.bz2
Preserve the chanPtr so that script evaluation cannot invalidate it when
we plan to use it again.
Diffstat (limited to 'generic/tclIO.c')
-rw-r--r--generic/tclIO.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/generic/tclIO.c b/generic/tclIO.c
index b9fa18d..eeca41b 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -8347,6 +8347,7 @@ TclChannelEventScriptInvoker(
*/
Tcl_Preserve(interp);
+ Tcl_Preserve(chanPtr);
result = Tcl_EvalObjEx(interp, esPtr->scriptPtr, TCL_EVAL_GLOBAL);
/*
@@ -8363,6 +8364,7 @@ TclChannelEventScriptInvoker(
}
TclBackgroundException(interp, result);
}
+ Tcl_Release(chanPtr);
Tcl_Release(interp);
}