summaryrefslogtreecommitdiffstats
path: root/generic/tclIORChan.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2023-08-21 18:07:48 (GMT)
committerdgp <dgp@users.sourceforge.net>2023-08-21 18:07:48 (GMT)
commit1ec6598ede90826c668a7d40db73a95ef3a3edb8 (patch)
tree4d5b46fc9fa4ddd3aed2224d86f66c65a659bb0f /generic/tclIORChan.c
parent8f0801033282ae8543f09d6e82509d8e1ef9122e (diff)
downloadtcl-1ec6598ede90826c668a7d40db73a95ef3a3edb8.zip
tcl-1ec6598ede90826c668a7d40db73a95ef3a3edb8.tar.gz
tcl-1ec6598ede90826c668a7d40db73a95ef3a3edb8.tar.bz2
The experiment deployment of TclDuplicatePureObj() has been reverted from
the trunk. This branch attempts to prepare a reversion for the core-8-branch also, via a cherrypick and resolution of conflicts. Starting an experiment in one new release to reject it in the next is at best odd. Also, valgrind test runs of core-8-branch show memory leaks with TclDuplicatePureObj() on the stack trace. This checkin shows a clean valgrind run. There are three test failures on this checkin, which I hope someone versed in the ArithSeries work can resolve. They are the tests: lseq-3.14 lseq-4.19 lseq-bug-54329e39c7 merge bug-bc7ddc7944 (revert use of TclDuplicatePureObj)
Diffstat (limited to 'generic/tclIORChan.c')
-rw-r--r--generic/tclIORChan.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index 3b1573b..0af76bf 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -2285,10 +2285,7 @@ NewReflectedChannel(
rcPtr->mode = mode;
rcPtr->interest = 0; /* Initially no interest registered */
- rcPtr->cmd = TclDuplicatePureObj(interp, cmdpfxObj, &tclListType);
- if (!rcPtr->cmd) {
- return NULL;
- }
+ rcPtr->cmd = TclListObjCopy(NULL, cmdpfxObj);
Tcl_IncrRefCount(rcPtr->cmd);
rcPtr->methods = Tcl_NewListObj(METH_WRITE + 1, NULL);
while (mn <= (int)METH_WRITE) {
@@ -2425,10 +2422,7 @@ InvokeTclMethod(
* before the channel id.
*/
- cmd = TclDuplicatePureObj(NULL, rcPtr->cmd, &tclListType);
- if (!cmd) {
- return TCL_ERROR;
- }
+ cmd = TclListObjCopy(NULL, rcPtr->cmd);
Tcl_ListObjIndex(NULL, rcPtr->methods, method, &methObj);
Tcl_ListObjAppendElement(NULL, cmd, methObj);
Tcl_ListObjAppendElement(NULL, cmd, rcPtr->name);