From 8d9cd83f6a4f12d137a1706b1be6926b6d62f221 Mon Sep 17 00:00:00 2001 From: FellippeHeitor Date: Thu, 30 Sep 2021 22:40:57 -0300 Subject: [PATCH] Prevent errors when doing internal lbound/ubound checks --- internal/c/qbx.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/c/qbx.cpp b/internal/c/qbx.cpp index f92589362..5924e563e 100755 --- a/internal/c/qbx.cpp +++ b/internal/c/qbx.cpp @@ -941,12 +941,24 @@ inline int16 func_abs(int16 d){return abs(d);} inline int32 func_abs(int32 d){return abs(d);} inline int64 func_abs(int64 d){return llabs(d);} +extern int32 disableEvents; + ptrszint check_lbound(ptrszint *array,int32 index, int32 num_indexes) { - return func_lbound((ptrszint*)(*array),index,num_indexes); + static ptrszint ret; + disableEvents = 1; + ret = func_lbound((ptrszint*)(*array),index,num_indexes); + new_error=0; + disableEvents = 0; + return ret; } ptrszint check_ubound(ptrszint *array,int32 index, int32 num_indexes) { - return func_ubound((ptrszint*)(*array),index,num_indexes); + static ptrszint ret; + disableEvents = 1; + ret = func_ubound((ptrszint*)(*array),index,num_indexes); + new_error=0; + disableEvents = 0; + return ret; } uint64 call_getubits(uint32 bsize,ptrszint *array,ptrszint i) { @@ -2077,8 +2089,6 @@ extern int64 display_lock_request; extern int64 display_lock_confirmed; extern int64 display_lock_released; -extern int32 disableEvents; - uint32 r; void evnt(uint32 linenumber, uint32 inclinenumber = 0, const char* incfilename = NULL){ if (disableEvents) return;