diff options
| author | griffin <briang42@easystreet.net> | 2023-08-12 04:07:57 (GMT) |
|---|---|---|
| committer | griffin <briang42@easystreet.net> | 2023-08-12 04:07:57 (GMT) |
| commit | 997617cd7d6c1368f0853db01bbbd1bc3da32c2c (patch) | |
| tree | 9cb4090b9f7466748e4d883baaed09858534782d | |
| parent | 0a0ba9e30933d273a7c6b265c177b72f5cdf7e9b (diff) | |
| download | tcl-997617cd7d6c1368f0853db01bbbd1bc3da32c2c.zip tcl-997617cd7d6c1368f0853db01bbbd1bc3da32c2c.tar.gz tcl-997617cd7d6c1368f0853db01bbbd1bc3da32c2c.tar.bz2 | |
Replace more DuplicateObj with ListObjCopy.
| -rw-r--r-- | generic/tclExecute.c | 2 | ||||
| -rw-r--r-- | generic/tclIOGT.c | 2 | ||||
| -rw-r--r-- | generic/tclIORChan.c | 4 | ||||
| -rw-r--r-- | generic/tclInt.h | 1 | ||||
| -rw-r--r-- | generic/tclListObj.c | 7 | ||||
| -rw-r--r-- | generic/tclVar.c | 4 |
6 files changed, 9 insertions, 11 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index ae7f0df..0371d90 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -6468,7 +6468,7 @@ TEBCresume( goto gotError; } if (Tcl_IsShared(listPtr)) { - objPtr = Tcl_DuplicateObj(listPtr); + objPtr = TclListObjCopy(NULL, listPtr); Tcl_IncrRefCount(objPtr); Tcl_DecrRefCount(listPtr); OBJ_AT_DEPTH(listTmpDepth) = objPtr; diff --git a/generic/tclIOGT.c b/generic/tclIOGT.c index 4497797..f577599 100644 --- a/generic/tclIOGT.c +++ b/generic/tclIOGT.c @@ -379,7 +379,7 @@ ExecuteCallback( unsigned char *resBuf; Tcl_InterpState state = NULL; int res = TCL_OK; - Tcl_Obj *command = Tcl_DuplicateObj(dataPtr->command); + Tcl_Obj *command = TclListObjCopy(NULL, dataPtr->command); Tcl_Interp *eval = dataPtr->interp; Tcl_Preserve(eval); diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c index af61c4c..f313ab7 100644 --- a/generic/tclIORChan.c +++ b/generic/tclIORChan.c @@ -2261,7 +2261,7 @@ NewReflectedChannel( rcPtr->mode = mode; rcPtr->interest = 0; /* Initially no interest registered */ - rcPtr->cmd = Tcl_DuplicateObj(cmdpfxObj); + rcPtr->cmd = TclListObjCopy(NULL, cmdpfxObj); Tcl_IncrRefCount(rcPtr->cmd); rcPtr->methods = Tcl_NewListObj(METH_WRITE + 1, NULL); while (mn <= (int)METH_WRITE) { @@ -2398,7 +2398,7 @@ InvokeTclMethod( * before the channel id. */ - cmd = Tcl_DuplicateObj(rcPtr->cmd); + cmd = TclListObjCopy(NULL, rcPtr->cmd); Tcl_ListObjIndex(NULL, rcPtr->methods, method, &methObj); Tcl_ListObjAppendElement(NULL, cmd, methObj); Tcl_ListObjAppendElement(NULL, cmd, rcPtr->name); diff --git a/generic/tclInt.h b/generic/tclInt.h index 1641ede..a2e8a51 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -3390,6 +3390,7 @@ MODULE_SCOPE Tcl_Obj * TclListObjGetElement(Tcl_Obj *listObj, Tcl_Size index); /* TIP #280 */ MODULE_SCOPE void TclListLines(Tcl_Obj *listObj, Tcl_Size line, Tcl_Size n, Tcl_Size *lines, Tcl_Obj *const *elems); +MODULE_SCOPE Tcl_Obj * TclListObjCopy(Tcl_Interp *interp, Tcl_Obj *listPtr); MODULE_SCOPE int TclListObjAppendElements(Tcl_Interp *interp, Tcl_Obj *toObj, Tcl_Size elemCount, Tcl_Obj *const elemObjv[]); diff --git a/generic/tclListObj.c b/generic/tclListObj.c index 0e70f6b..e9cff27 100644 --- a/generic/tclListObj.c +++ b/generic/tclListObj.c @@ -2572,7 +2572,6 @@ TclLindexList( Tcl_Obj *indexListCopy; Tcl_Obj **indexObjs; Tcl_Size numIndexObjs; - int status; /* * Determine whether argPtr designates a list or a single index. We have @@ -2602,10 +2601,7 @@ TclLindexList( */ indexListCopy = TclListObjCopy(NULL, argObj); - status = (indexListCopy ? TclListObjGetElementsM( - interp, indexListCopy, &numIndexObjs, &indexObjs) : TCL_ERROR); - if (status != TCL_OK) { - Tcl_DecrRefCount(indexListCopy); + if (indexListCopy == NULL) { /* * The argument is neither an index nor a well-formed list. * Report the error via TclLindexFlat. @@ -2613,6 +2609,7 @@ TclLindexList( */ return TclLindexFlat(interp, listObj, 1, &argObj); } + TclListObjGetElementsM(interp, indexListCopy, &numIndexObjs, &indexObjs); listObj = TclLindexFlat(interp, listObj, numIndexObjs, indexObjs); Tcl_DecrRefCount(indexListCopy); return listObj; diff --git a/generic/tclVar.c b/generic/tclVar.c index b0fbb82..31312e1 100644 --- a/generic/tclVar.c +++ b/generic/tclVar.c @@ -3099,7 +3099,7 @@ ArrayForNRCmd( * loop) don't vanish. */ - varListObj = Tcl_DuplicateObj(objv[1]); + varListObj = TclListObjCopy(NULL, objv[1]); if (!varListObj) { return TCL_ERROR; } @@ -4075,7 +4075,7 @@ ArraySetCmd( * the loop and return an error. */ - copyListObj = Tcl_DuplicateObj(arrayElemObj); + copyListObj = TclListObjCopy(NULL, arrayElemObj); if (!copyListObj) { return TCL_ERROR; } |
