diff options
author | dgp <dgp@noemail.net> | 2011-03-08 15:22:38 (GMT) |
---|---|---|
committer | dgp <dgp@noemail.net> | 2011-03-08 15:22:38 (GMT) |
commit | fbcddb47a6ed50b80addce6f213dd8befb0d04aa (patch) | |
tree | 1114a221e975d66928fed84192cc8f71a88b3dbb /generic/tclResult.c | |
parent | 25a78a3ba5375dabc5f080db12526d70bb2eb635 (diff) | |
download | tcl-fbcddb47a6ed50b80addce6f213dd8befb0d04aa.zip tcl-fbcddb47a6ed50b80addce6f213dd8befb0d04aa.tar.gz tcl-fbcddb47a6ed50b80addce6f213dd8befb0d04aa.tar.bz2 |
* generic/tclResult.c (ResetObjResult): Correct failure to clear
invalid intrep. Thanks to Colin McDonald. [Bug 3202905]
FossilOrigin-Name: 39e462a5d52bac5100088f9aebd51ef3b6d32121
Diffstat (limited to 'generic/tclResult.c')
-rw-r--r-- | generic/tclResult.c | 12 |
1 files changed, 7 insertions, 5 deletions
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; } |