diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-01-16 19:43:32 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-01-16 19:43:32 (GMT) |
commit | 00f134d99d29092b3e42776297c8facaa29efcab (patch) | |
tree | c7e3c192a6060cf02467ad4ce68a79ad34d015ae /generic/tclExecute.c | |
parent | 1b13dffa8c63561730b6a741f9563dbea9f4acc8 (diff) | |
download | tcl-00f134d99d29092b3e42776297c8facaa29efcab.zip tcl-00f134d99d29092b3e42776297c8facaa29efcab.tar.gz tcl-00f134d99d29092b3e42776297c8facaa29efcab.tar.bz2 |
More TIP #502 optimizations and improvements, preparing further for the road to Tcl 9.
No longer use INT_MAX for TCL_INDEX_AFTER, because INT_MAX can be a normal index in Tcl 9.
TclGetIntForIndex now clips between -1 and INT_MAX. In Tcl 9 size_t will be used for the index data type.
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 31 |
1 files changed, 7 insertions, 24 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 04c7ee2..a0fe35c 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -4973,16 +4973,7 @@ TEBCresume( /* Decode index value operands. */ - /* - assert ( toIdx != TCL_INDEX_AFTER); - * - * Extra safety for legacy bytecodes: - */ - if (toIdx == TCL_INDEX_AFTER) { - toIdx = TCL_INDEX_END; - } - - if ((toIdx == TCL_INDEX_BEFORE) || (fromIdx == TCL_INDEX_AFTER)) { + if (toIdx == TCL_INDEX_NONE) { emptyList: objResultPtr = Tcl_NewObj(); TRACE_APPEND(("\"%.30s\"", O2S(objResultPtr))); @@ -4997,11 +4988,11 @@ TEBCresume( assert ( toIdx >= 0 && toIdx < objc); /* - assert ( fromIdx != TCL_INDEX_BEFORE ); + assert ( fromIdx != TCL_INDEX_NONE ); * * Extra safety for legacy bytecodes: */ - if (fromIdx == TCL_INDEX_BEFORE) { + if (fromIdx == TCL_INDEX_NONE) { fromIdx = TCL_INDEX_START; } @@ -5288,17 +5279,13 @@ TEBCresume( /* Decode index operands. */ /* - assert ( toIdx != TCL_INDEX_BEFORE ); - assert ( toIdx != TCL_INDEX_AFTER); + assert ( toIdx != TCL_INDEX_NONE ); * * Extra safety for legacy bytecodes: */ - if (toIdx == TCL_INDEX_BEFORE) { + if (toIdx == TCL_INDEX_NONE) { goto emptyRange; } - if (toIdx == TCL_INDEX_AFTER) { - toIdx = TCL_INDEX_END; - } toIdx = TclIndexDecode(toIdx, length - 1); if (toIdx < 0) { @@ -5310,17 +5297,13 @@ TEBCresume( assert ( toIdx >= 0 && toIdx < length ); /* - assert ( fromIdx != TCL_INDEX_BEFORE ); - assert ( fromIdx != TCL_INDEX_AFTER); + assert ( fromIdx != TCL_INDEX_NONE ); * * Extra safety for legacy bytecodes: */ - if (fromIdx == TCL_INDEX_BEFORE) { + if (fromIdx == TCL_INDEX_NONE) { fromIdx = TCL_INDEX_START; } - if (fromIdx == TCL_INDEX_AFTER) { - goto emptyRange; - } fromIdx = TclIndexDecode(fromIdx, length - 1); if (fromIdx < 0) { |