From 4b980e667b2a07f5ea3aeb437079db9be6f89979 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Tue, 2 Apr 2024 08:08:27 +1000 Subject: lsort: don't try to sort a list of length 0 or 1 Signed-off-by: Steve Bennett --- jim.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jim.c b/jim.c index d87a9b5..ec855a2 100644 --- a/jim.c +++ b/jim.c @@ -13423,6 +13423,8 @@ static int Jim_LsortCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const arg int retCode; int shared; long stride = 1; + Jim_Obj **elements; + int listlen; struct lsort_info info; @@ -13503,13 +13505,17 @@ badindex: } } resObj = argv[argc - 1]; + JimListGetElements(interp, resObj, &listlen, &elements); + if (listlen <= 1) { + /* Nothing to do */ + Jim_SetResult(interp, resObj); + return JIM_OK; + } + if (stride > 1) { Jim_Obj *tmpListObj; - Jim_Obj **elements; - int listlen; int i; - JimListGetElements(interp, resObj, &listlen, &elements); if (listlen % stride) { Jim_SetResultString(interp, "list size must be a multiple of the stride length", -1); return JIM_ERR; -- cgit v1.1