summaryrefslogtreecommitdiffstats
path: root/generic/tclUtil.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-06-06 10:39:31 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-06-06 10:39:31 (GMT)
commitc12e4b6cfe9d4b18e89bb8162766fe660722f48f (patch)
tree3a8521ee3816c25eceb1e02abfd6aa3746fe7be3 /generic/tclUtil.c
parentb54632928e8d3ebda479a7e8e56fa3b53a22f1ce (diff)
parent43d2194943b8bb2c3080092a8219e3923b51f9bf (diff)
downloadtcl-c12e4b6cfe9d4b18e89bb8162766fe660722f48f.zip
tcl-c12e4b6cfe9d4b18e89bb8162766fe660722f48f.tar.gz
tcl-c12e4b6cfe9d4b18e89bb8162766fe660722f48f.tar.bz2
Fix [57daa91ea]: Tcl_GetIntForIndex handling of n-m (m > n). With testcases.
Diffstat (limited to 'generic/tclUtil.c')
-rw-r--r--generic/tclUtil.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index e82eea2..b87b5d6 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -3706,18 +3706,12 @@ GetEndOffsetFromObj(
* as endValue will have to adjust accordingly.
*/
*widePtr = (endValue == -1) ? WIDE_MAX : endValue + 1;
- } else if (offset == WIDE_MIN) {
- /* -1 - position before first */
- *widePtr = -1;
} else if (offset < 0) {
/* end-(n-1) - Different signs, sum cannot overflow */
*widePtr = endValue + offset + 1;
- } else if (offset < WIDE_MAX) {
- /* 0:WIDE_MAX-1 - plain old index. */
- *widePtr = offset;
} else {
- /* Huh, what case remains here? */
- *widePtr = WIDE_MAX;
+ /* 0:WIDE_MAX - plain old index. */
+ *widePtr = offset;
}
return TCL_OK;