diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-06-16 13:56:05 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-07-07 21:34:34 +1000 |
commit | 7ff7ff2e1c95d3bea5effbf1e8f0e8f401e2e625 (patch) | |
tree | 5b92e2421a6aee6084ea0bddbfb1e59f815f3bb0 | |
parent | 2b6aed8f63674d6b17ce06d4df60987ff33c0f55 (diff) | |
download | jimtcl-7ff7ff2e1c95d3bea5effbf1e8f0e8f401e2e625.zip jimtcl-7ff7ff2e1c95d3bea5effbf1e8f0e8f401e2e625.tar.gz jimtcl-7ff7ff2e1c95d3bea5effbf1e8f0e8f401e2e625.tar.bz2 |
Optimise [lrange] when returning the whole list
Signed-off-by: Steve Bennett <steveb@workware.net.au>
-rw-r--r-- | jim.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -6195,6 +6195,9 @@ Jim_Obj *Jim_ListRange(Jim_Interp *interp, Jim_Obj *listObjPtr, Jim_Obj *firstOb first = JimRelToAbsIndex(len, first); last = JimRelToAbsIndex(len, last); JimRelToAbsRange(len, first, last, &first, &last, &rangeLen); + if (first == 0 && last == len) { + return listObjPtr; + } return Jim_NewListObj(interp, listObjPtr->internalRep.listValue.ele + first, rangeLen); } |