diff options
author | Steve Bennett <steveb@workware.net.au> | 2020-04-16 13:09:38 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2020-04-17 07:49:56 +1000 |
commit | e799d21972cc06d6758cbd0c397df37cf0de0928 (patch) | |
tree | 84a4061705f4f2e40614bba748574896b0b56ac1 /tests | |
parent | 9023bf0ac3eb73ebad8fb333c0b08a0a09332659 (diff) | |
download | jimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.zip jimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.tar.gz jimtcl-e799d21972cc06d6758cbd0c397df37cf0de0928.tar.bz2 |
expr: avoid memory leak due to shimmering
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/expr-new.test | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/expr-new.test b/tests/expr-new.test index c04da05..f81c911 100644 --- a/tests/expr-new.test +++ b/tests/expr-new.test @@ -627,6 +627,19 @@ test expr-21.7 {checking boolean mixed case} { } } 1 +# This test won't fail if shimmering isn't handled +# correctly, but it will leak memory. configure with --maintainer +# to see the issue. +test expr-21.1 {expr shimmering} { + set x {[a] + 2} + proc a {} { + upvar x x + # make the expression become a list while we are executing it + lindex $x 2 + } + expr $x +} {4} + # cleanup if {[info exists a]} { unset a |