summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2014-07-10 16:40:30 (GMT)
committerdgp <dgp@users.sourceforge.net>2014-07-10 16:40:30 (GMT)
commitb92f2e193fa860f286960078e2faa5e19d9556f3 (patch)
tree814789ffd44685ad57bbf6d5833c06e80fa27979
parentd2e0b26a11a2c8f5bc8c9282811df46306cb03ca (diff)
parent5c5fdd7d09e5473a987675963b90be7066a72247 (diff)
downloadtcl-b92f2e193fa860f286960078e2faa5e19d9556f3.zip
tcl-b92f2e193fa860f286960078e2faa5e19d9556f3.tar.gz
tcl-b92f2e193fa860f286960078e2faa5e19d9556f3.tar.bz2
[7368d225a6] Extend the auto-cleanup of zero ref count values passed in to
the Tcl_*SetVar*() family of routines to cover the missing case where the flags value of TCL_APPEND_VALUE is passed in alone. *** POTENTIAL INCOMAPTIBILITY***
-rw-r--r--generic/tclVar.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/tclVar.c b/generic/tclVar.c
index 4694cd8..5e3157e 100644
--- a/generic/tclVar.c
+++ b/generic/tclVar.c
@@ -1958,6 +1958,9 @@ TclPtrSetVar(
Tcl_IncrRefCount(oldValuePtr); /* Since var is ref */
}
Tcl_AppendObjToObj(oldValuePtr, newValuePtr);
+ if (newValuePtr->refCount == 0) {
+ Tcl_DecrRefCount(newValuePtr);
+ }
}
}
} else if (newValuePtr != oldValuePtr) {