diff options
| author | griffin <briang42@easystreet.net> | 2023-05-23 21:36:46 (GMT) |
|---|---|---|
| committer | griffin <briang42@easystreet.net> | 2023-05-23 21:36:46 (GMT) |
| commit | e91f967003cb7c4aa4512e9afc4bf5199e48ba92 (patch) | |
| tree | 90757e0d4dc74d64240ebf00ddaa08f36f1a4854 /generic/tclIORChan.c | |
| parent | fa313109d6a46e437c1583c859b6e79e0a6dae2a (diff) | |
| parent | 54a1d7e517922684d8612dea07b479a6d493e2f1 (diff) | |
| download | tcl-e91f967003cb7c4aa4512e9afc4bf5199e48ba92.zip tcl-e91f967003cb7c4aa4512e9afc4bf5199e48ba92.tar.gz tcl-e91f967003cb7c4aa4512e9afc4bf5199e48ba92.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 ada5768..a657021 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 = TclDuplicatePureObj(cmdpfxObj); + rcPtr->cmd = TclDuplicatePureObj(interp, cmdpfxObj, &tclListType); + 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 = TclDuplicatePureObj(rcPtr->cmd); - + cmd = TclDuplicatePureObj(NULL, rcPtr->cmd, &tclListType); + if (!cmd) { + return TCL_ERROR; + } Tcl_ListObjIndex(NULL, rcPtr->methods, method, &methObj); Tcl_ListObjAppendElement(NULL, cmd, methObj); Tcl_ListObjAppendElement(NULL, cmd, rcPtr->name); |
