diff options
| author | apnadkarni <apnmbx-wits@yahoo.com> | 2023-05-19 23:07:13 (GMT) |
|---|---|---|
| committer | apnadkarni <apnmbx-wits@yahoo.com> | 2023-05-19 23:07:13 (GMT) |
| commit | 1b8701ee3d55320b42676e77ce32c04950facee6 (patch) | |
| tree | 53582f83932c90609c0ae3a75d3668f48369187f /generic/tclIORChan.c | |
| parent | 16a75f3cbf8ba7ab30d4f5f1adcd658269d9ae8c (diff) | |
| parent | 83d22bd1f6fd20b5ce07fc4e16af80619f859422 (diff) | |
| download | tcl-1b8701ee3d55320b42676e77ce32c04950facee6.zip tcl-1b8701ee3d55320b42676e77ce32c04950facee6.tar.gz tcl-1b8701ee3d55320b42676e77ce32c04950facee6.tar.bz2 | |
Merge trunk
Diffstat (limited to 'generic/tclIORChan.c')
| -rw-r--r-- | generic/tclIORChan.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c index f2138c4..c7cbfe5 100644 --- a/generic/tclIORChan.c +++ b/generic/tclIORChan.c @@ -580,6 +580,9 @@ TclChanCreateObjCmd( rcId = NextHandle(); rcPtr = NewReflectedChannel(interp, cmdObj, mode, rcId); + if (!rcPtr) { + return TCL_ERROR; + } /* * Invoke 'initialize' and validate that the handler is present and ok. @@ -2258,8 +2261,10 @@ NewReflectedChannel( rcPtr->mode = mode; rcPtr->interest = 0; /* Initially no interest registered */ - /* ASSERT: cmdpfxObj is a Tcl List */ - rcPtr->cmd = TclListObjCopy(NULL, cmdpfxObj); + rcPtr->cmd = TclDuplicatePureObj(interp, cmdpfxObj, &tclListType.objType); + if (!rcPtr->cmd) { + return NULL; + } Tcl_IncrRefCount(rcPtr->cmd); rcPtr->methods = Tcl_NewListObj(METH_WRITE + 1, NULL); while (mn <= (int)METH_WRITE) { @@ -2396,8 +2401,10 @@ InvokeTclMethod( * before the channel id. */ - cmd = TclListObjCopy(NULL, rcPtr->cmd); - + cmd = TclDuplicatePureObj(NULL, rcPtr->cmd, &tclListType.objType); + if (!cmd) { + return TCL_ERROR; + } Tcl_ListObjIndex(NULL, rcPtr->methods, method, &methObj); Tcl_ListObjAppendElement(NULL, cmd, methObj); Tcl_ListObjAppendElement(NULL, cmd, rcPtr->name); |
