From b6beba7a55d8c9961e696f77bc85fdbf0af964ab Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 24 Jul 2012 20:14:23 +0000 Subject: Preserve the chanPtr so that script evaluation cannot invalidate it when we plan to use it again. --- generic/tclIO.c | 2 ++ 1 file changed, 2 insertions(+) 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); } -- cgit v0.12 From 58515791c8e55bf546d15634a8caef7f41cf3d26 Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 24 Jul 2012 20:18:35 +0000 Subject: Preserve the chanPtr so that script evaluation cannot invalidate it when we plan to use it again. --- generic/tclIO.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/generic/tclIO.c b/generic/tclIO.c index a1d5447..b9cd30c 100644 --- a/generic/tclIO.c +++ b/generic/tclIO.c @@ -7540,6 +7540,7 @@ TclChannelEventScriptInvoker(clientData, mask) */ Tcl_Preserve((ClientData) interp); + Tcl_Preserve((ClientData) chanPtr); result = Tcl_EvalObjEx(interp, esPtr->scriptPtr, TCL_EVAL_GLOBAL); /* @@ -7556,6 +7557,7 @@ TclChannelEventScriptInvoker(clientData, mask) } Tcl_BackgroundError(interp); } + Tcl_Release((ClientData) chanPtr); Tcl_Release((ClientData) interp); } -- cgit v0.12