summaryrefslogtreecommitdiffstats
path: root/generic/tclUtil.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-21 22:38:58 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-06-21 22:38:58 (GMT)
commit22c9ba1a272f1a1aedbff98a5557e17754bb0b8b (patch)
treed66a89aab2277d0b66eeef2bbb1639df7fd44cbe /generic/tclUtil.c
parent09c0f6835523794621c9bae88e5ea3b955c14878 (diff)
parentbc87d9a2bc25805bbeda05983b9a403d0767fb1f (diff)
downloadtcl-22c9ba1a272f1a1aedbff98a5557e17754bb0b8b.zip
tcl-22c9ba1a272f1a1aedbff98a5557e17754bb0b8b.tar.gz
tcl-22c9ba1a272f1a1aedbff98a5557e17754bb0b8b.tar.bz2
(partial) fix for [https://core.tcl-lang.org/tk/tktview/a9929f112a|a9929f112a]: Bugs in the implementation of TIP 577 ("Enhanced index values for Tk" )
Diffstat (limited to 'generic/tclUtil.c')
-rw-r--r--generic/tclUtil.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 30ae39a..074614f 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -3660,6 +3660,9 @@ GetWideForIndex(
if (numType == TCL_NUMBER_INT) {
/* objPtr holds an integer in the signed wide range */
*widePtr = *(Tcl_WideInt *)cd;
+ if ((*widePtr < 0)) {
+ *widePtr = WIDE_MIN;
+ }
return TCL_OK;
}
if (numType == TCL_NUMBER_BIG) {
@@ -3966,7 +3969,7 @@ GetEndOffsetFromObj(
offset = irPtr->wideValue;
if (offset == WIDE_MAX) {
- *widePtr = endValue + 1;
+ *widePtr = (endValue == (size_t)-1) ? WIDE_MAX : endValue + 1;
} else if (offset == WIDE_MIN) {
*widePtr = -1;
} else if (endValue == (size_t)-1) {