From d04020a992d6287017a7f76cb3d5b89f7776ebb2 Mon Sep 17 00:00:00 2001 From: Steve Bennett Date: Fri, 10 Feb 2023 13:59:44 +1000 Subject: Optimisation for Jim_GetWideExpr() If the expression is a simple integer, use it as-is rather than converting to an expression and evaluating. Signed-off-by: Steve Bennett --- jim.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'jim.c') diff --git a/jim.c b/jim.c index 68a703e..fba93cb 100644 --- a/jim.c +++ b/jim.c @@ -6102,6 +6102,10 @@ int Jim_GetWide(Jim_Interp *interp, Jim_Obj *objPtr, jim_wide * widePtr) int Jim_GetWideExpr(Jim_Interp *interp, Jim_Obj *objPtr, jim_wide * widePtr) { int ret = JIM_OK; + /* As an optimisation, try to convert to int first */ + if (objPtr->typePtr == &sourceObjType || objPtr->typePtr == NULL) { + SetIntFromAny(interp, objPtr, 0); + } if (objPtr->typePtr == &intObjType) { *widePtr = JimWideValue(objPtr); } -- cgit v1.1