summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornijtmans@users.sourceforge.net <jan.nijtmans>2012-12-27 20:54:31 (GMT)
committernijtmans@users.sourceforge.net <jan.nijtmans>2012-12-27 20:54:31 (GMT)
commitc4bd45979cae109235750b18bfd10c58f5568e19 (patch)
treecb600b9e95d56d0f5504ae75b86da6e4929f3bce
parent9717bb3f491876148203f94ff09e38feca10621b (diff)
downloadtcl-c4bd45979cae109235750b18bfd10c58f5568e19.zip
tcl-c4bd45979cae109235750b18bfd10c58f5568e19.tar.gz
tcl-c4bd45979cae109235750b18bfd10c58f5568e19.tar.bz2
restore old refcounts in TCL_ERROR case.
-rw-r--r--generic/tclListObj.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 1166759..97e7152 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -906,6 +906,9 @@ Tcl_ListObjReplace(
listRepPtr = AttemptNewList(interp, newMax, NULL);
if (listRepPtr == NULL) {
+ for (i = 0; i < objc; i++) {
+ objv[i]->refCount--;
+ }
return TCL_ERROR;
}