diff options
| author | griffin <briang42@easystreet.net> | 2022-09-27 18:50:33 (GMT) |
|---|---|---|
| committer | griffin <briang42@easystreet.net> | 2022-09-27 18:50:33 (GMT) |
| commit | 7694cd7bef6d69dbd7d91d338f3626d9e6875e95 (patch) | |
| tree | 83aac66cf3ea0b9678accf5e120c93cc35822955 /generic/tclCmdIL.c | |
| parent | a0ee4e463ed283418dc94c826f9b65933fe5ba7d (diff) | |
| parent | e6a7cce3f165ad55c83585adc5de507471083a65 (diff) | |
| download | tcl-7694cd7bef6d69dbd7d91d338f3626d9e6875e95.zip tcl-7694cd7bef6d69dbd7d91d338f3626d9e6875e95.tar.gz tcl-7694cd7bef6d69dbd7d91d338f3626d9e6875e95.tar.bz2 | |
Fix bug-9933cc4d88
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 5e13754..5821a35 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -2720,7 +2720,6 @@ Tcl_LrangeObjCmd( /* Argument objects. */ { int listLen, first, last, result; - if (objc != 4) { Tcl_WrongNumArgs(interp, 1, objv, "list first last"); return TCL_ERROR; @@ -2744,7 +2743,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)); } @@ -3137,8 +3142,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 */ @@ -4422,10 +4432,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. |
