From 7c2e7295abcd68607e8eace67d048f546a83411d Mon Sep 17 00:00:00 2001 From: dgp Date: Tue, 8 Mar 2011 15:22:38 +0000 Subject: * generic/tclResult.c (ResetObjResult): Correct failure to clear invalid intrep. Thanks to Colin McDonald. [Bug 3202905] --- ChangeLog | 5 +++++ generic/tclResult.c | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d7bdeec..4e4d715 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-03-08 Don Porter + + * generic/tclResult.c (ResetObjResult): Correct failure to clear + invalid intrep. Thanks to Colin McDonald. [Bug 3202905] + 2011-03-08 Donal K. Fellows * generic/tclAssembly.c, tests/assemble.test: Migrate to use a style diff --git a/generic/tclResult.c b/generic/tclResult.c index f60ae26..2a04f18 100644 --- a/generic/tclResult.c +++ b/generic/tclResult.c @@ -980,12 +980,14 @@ ResetObjResult( TclNewObj(objResultPtr); Tcl_IncrRefCount(objResultPtr); iPtr->objResultPtr = objResultPtr; - } else if (objResultPtr->bytes != tclEmptyStringRep) { - if (objResultPtr->bytes != NULL) { - ckfree((char *) objResultPtr->bytes); + } else { + if (objResultPtr->bytes != tclEmptyStringRep) { + if (objResultPtr->bytes) { + ckfree((char *) objResultPtr->bytes); + } + objResultPtr->bytes = tclEmptyStringRep; + objResultPtr->length = 0; } - objResultPtr->bytes = tclEmptyStringRep; - objResultPtr->length = 0; TclFreeIntRep(objResultPtr); objResultPtr->typePtr = NULL; } -- cgit v0.12