diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2008-08-17 14:15:24 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2008-08-17 14:15:24 (GMT) |
commit | d49908850f4747e397786cba1c88d3aca348eb36 (patch) | |
tree | bb2b51fe89b8a3295adbd6dbf7f01e53f4b89469 /generic/tclUtil.c | |
parent | 146f94987b85cac730a1bde68d0e16d6907f79c0 (diff) | |
download | tcl-d49908850f4747e397786cba1c88d3aca348eb36.zip tcl-d49908850f4747e397786cba1c88d3aca348eb36.tar.gz tcl-d49908850f4747e397786cba1c88d3aca348eb36.tar.bz2 |
* generic/tclTest.c (TestconcatobjCmd):
* generic/tclUtil.c (Tcl_ConcatObj):
* tests/util.test (util-4.7):
fix [Bug 1447328]; the original "fix" turned Tcl_ConcatObj() into
a hairy monster. This was exposed by [Bug 2055782]. Additionally,
Tcl_ConcatObj could corrupt its input under certain conditions!
*** NASTY BUG FIXED ***
Diffstat (limited to 'generic/tclUtil.c')
-rw-r--r-- | generic/tclUtil.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c index 480196c..a1a0861 100644 --- a/generic/tclUtil.c +++ b/generic/tclUtil.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclUtil.c,v 1.98 2008/04/27 22:21:33 dkf Exp $ + * RCS: @(#) $Id: tclUtil.c,v 1.99 2008/08/17 14:15:26 msofer Exp $ */ #include "tclInt.h" @@ -1197,11 +1197,7 @@ Tcl_ConcatObj( if (resPtr) { Tcl_ListObjReplace(NULL, resPtr, INT_MAX, 0, listc, listv); } else { - if (Tcl_IsShared(objPtr)) { - resPtr = TclListObjCopy(NULL, objPtr); - } else { - resPtr = objPtr; - } + resPtr = TclListObjCopy(NULL, objPtr); } } } |