Tcl Source Code

Changes On Branch bug-cc1e91552c
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch bug-cc1e91552c Excluding Merge-Ins

This is equivalent to a diff from 6a6a71e5bf to 098e8b701a

2019-01-09
10:01
closes [cc1e91552c]: fixes lrange instruction on empty not canonical list (and acc. within expansion... check-in: 9d24a1b9db user: sebres tags: core-8-6-branch
2019-01-08
18:15
fixed missing dependency in test-cases "*io-60.1" (constraint-related) - missed load of tcltest-libr... check-in: 1688d8f73e user: sebres tags: core-8-6-branch
14:39
amend to [a87460dbd4], added clean-up to avoid error {can't set "a(x)": variable isn't array} on nex... Closed-Leaf check-in: 098e8b701a user: sebres tags: bug-cc1e91552c
13:35
closes [cc1e91552c]: fixes lrange instruction on empty list, return original list only if it is cano... check-in: e364d7f9ff user: sebres tags: bug-cc1e91552c
13:29
bug [cc1e91552c]: added test cases showing the regression (expansion & lrange) check-in: a87460dbd4 user: sebres tags: bug-cc1e91552c
2019-01-07
01:15
merge back after cherry-picking (no functional changes) check-in: 6a6a71e5bf user: sebres tags: core-8-6-branch
01:11
cherry-pick [3e4d907d8e] from 8.6: prevent buffer overrun in fast_s_mp_mul_digs(). check-in: 02693d92df user: sebres tags: core-8-5-branch
2019-01-04
22:36
Merge 8.5 check-in: a0e74ab307 user: jan.nijtmans tags: core-8-6-branch

Changes to generic/tclExecute.c.

5233
5234
5235
5236
5237
5238
5239


5240
5241




5242
5243
5244
5245
5246
5247
5248
5233
5234
5235
5236
5237
5238
5239
5240
5241


5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252







+
+
-
-
+
+
+
+







	if (*(pc+9) == INST_POP) {
	    NEXT_INST_F(10, 1, 0);
	}
#endif

	/* Every range of an empty list is an empty list */
	if (objc == 0) {
	    /* avoid return of not canonical list (e. g. spaces in string repr.) */
	    if (ListObjIsCanonical(valuePtr)) {
	    TRACE_APPEND(("\n"));
	    NEXT_INST_F(9, 0, 0);
		TRACE_APPEND(("\n"));
		NEXT_INST_F(9, 0, 0);
	    }
	    goto emptyList;
	}

	/* Decode index value operands. */

	/* 
	assert ( toIdx != TCL_INDEX_AFTER);
	 *

Changes to tests/basic.test.

957
958
959
960
961
962
963






964
965
966
967
968
969
970
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976







+
+
+
+
+
+







        lappend res $t

        lappend res [catch { run { {*}{error Hejsan} } } err]
        lappend res $err
    } -cleanup {
	unset res t
} -result {0 10 1 Hejsan}

test basic-48.24.$noComp {expansion: empty not canonical list, regression test, bug [cc1e91552c]} -constraints $constraints -setup {
    unset -nocomplain a
} -body {
    run {list [list {*}{ }] [list {*}[format %c 32]] [list {*}[set a { }]]}
} -result [lrepeat 3 {}] -cleanup {unset -nocomplain a}

} ;# End of noComp loop

test basic-49.1 {Tcl_EvalEx: verify TCL_EVAL_GLOBAL operation} testevalex {
    set ::x global
    namespace eval ns {
	variable x namespace

Changes to tests/lrange.test.

103
104
105
106
107
108
109










110
111
112
113
114
115
116
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126







+
+
+
+
+
+
+
+
+
+








test lrange-3.5 {compiled with calculated indices, start out of range (negative)} {
    list [lrange {a b c} -1 1] [lrange {a b c} -1+0 end-1] [lrange {a b c} -2 1] [lrange {a b c} -2+0 0+1]
} [lrepeat 4 {a b}]
test lrange-3.6 {compiled with calculated indices, end out of range (after end)} {
    list [lrange {a b c} 1 end+1] [lrange {a b c} 1+0 2+1] [lrange {a b c} 1 end+1] [lrange {a b c} end-1 3+1]
} [lrepeat 4 {b c}]

test lrange-3.7a {compiled on empty not canonical list (with static and dynamic indices), regression test, bug [cc1e91552c]} {
    list [lrange { } 0 1] [lrange [format %c 32] 0 1] [lrange [set a { }] 0 1] \
	 [lrange { } 0-1 end+1] [lrange [format %c 32] 0-1 end+1] [lrange $a 0-1 end+1]
} [lrepeat 6 {}]
test lrange-3.7b {not compiled on empty not canonical list (with static and dynamic indices), regression test, bug [cc1e91552c]} {
    set cmd lrange
    list [$cmd { } 0 1] [$cmd [format %c 32] 0 1] [$cmd [set a { }] 0 1] \
	 [$cmd { } 0-1 end+1] [$cmd [format %c 32] 0-1 end+1] [$cmd $a 0-1 end+1]
} [lrepeat 6 {}]


# cleanup
::tcltest::cleanupTests
return

# Local Variables: