summaryrefslogtreecommitdiffstats
path: root/generic/tclResult.c
diff options
context:
space:
mode:
authordgp <dgp@noemail.net>2011-03-08 15:22:38 (GMT)
committerdgp <dgp@noemail.net>2011-03-08 15:22:38 (GMT)
commitfbcddb47a6ed50b80addce6f213dd8befb0d04aa (patch)
tree1114a221e975d66928fed84192cc8f71a88b3dbb /generic/tclResult.c
parent25a78a3ba5375dabc5f080db12526d70bb2eb635 (diff)
downloadtcl-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.c12
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;
}