diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-28 08:31:35 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2022-09-28 08:31:35 (GMT) |
commit | 5a103eaacbd1947b7ec81e16e572da273c957bce (patch) | |
tree | 2066b08dc36eabe75b9500bb904db0447f345566 /generic/tclCmdIL.c | |
parent | f68a36c8bedfe75b570af667b2fec7a0d81e8f00 (diff) | |
parent | 8b5a187d44e2ed11ef57b3a94e26e349a20ae2f0 (diff) | |
download | tcl-5a103eaacbd1947b7ec81e16e572da273c957bce.zip tcl-5a103eaacbd1947b7ec81e16e572da273c957bce.tar.gz tcl-5a103eaacbd1947b7ec81e16e572da273c957bce.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tclCmdIL.c')
-rw-r--r-- | generic/tclCmdIL.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index 231bf02..36d7ae5 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -2724,7 +2724,6 @@ Tcl_LrangeObjCmd( { int result; size_t listLen, first, last; - if (objc != 4) { Tcl_WrongNumArgs(interp, 1, objv, "list first last"); return TCL_ERROR; @@ -2748,7 +2747,13 @@ Tcl_LrangeObjCmd( } if (TclHasInternalRep(objv[1],&tclArithSeriesType)) { - Tcl_SetObjResult(interp, TclArithSeriesObjRange(objv[1], first, last)); + Tcl_Obj *rangeObj; + rangeObj = TclArithSeriesObjRange(interp, objv[1], first, last); + if (rangeObj) { + Tcl_SetObjResult(interp, rangeObj); + } else { + return TCL_ERROR; + } } else { Tcl_SetObjResult(interp, TclListObjRange(objv[1], first, last)); } @@ -3141,8 +3146,13 @@ Tcl_LreverseObjCmd( * just to reverse it. */ if (TclHasInternalRep(objv[1],&tclArithSeriesType)) { - Tcl_SetObjResult(interp, TclArithSeriesObjReverse(objv[1])); - return TCL_OK; + Tcl_Obj *resObj = TclArithSeriesObjReverse(interp, objv[1]); + if (resObj) { + Tcl_SetObjResult(interp, resObj); + return TCL_OK; + } else { + return TCL_ERROR; + } } /* end ArithSeries */ /* True List */ @@ -4430,10 +4440,12 @@ Tcl_LseqObjCmd( /* * Success! Now lets create the series object. */ - arithSeriesPtr = TclNewArithSeriesObj(useDoubles, start, end, step, elementCount); + status = TclNewArithSeriesObj(interp, &arithSeriesPtr, + useDoubles, start, end, step, elementCount); - Tcl_SetObjResult(interp, arithSeriesPtr); - status = TCL_OK; + if (status == TCL_OK) { + Tcl_SetObjResult(interp, arithSeriesPtr); + } done: // Free number arguments. |