diff options
author | dgp <dgp@users.sourceforge.net> | 2023-08-21 18:07:48 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2023-08-21 18:07:48 (GMT) |
commit | 1ec6598ede90826c668a7d40db73a95ef3a3edb8 (patch) | |
tree | 4d5b46fc9fa4ddd3aed2224d86f66c65a659bb0f /generic/tclIORChan.c | |
parent | 8f0801033282ae8543f09d6e82509d8e1ef9122e (diff) | |
download | tcl-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.c | 10 |
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); |