diff options
author | dgp <dgp@users.sourceforge.net> | 2016-03-01 16:45:01 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2016-03-01 16:45:01 (GMT) |
commit | c761f885ddfb0bfdc09e27db3399acb1f1b65dbd (patch) | |
tree | f780a4fc2384f155fb49a9e432d1f54f4d1afe77 /tests | |
parent | 049650b5952e5e5ee1997772750450305dccc6d7 (diff) | |
parent | 7d6b4ece6967da652c3eeb1f0baced245473353b (diff) | |
download | tcl-c761f885ddfb0bfdc09e27db3399acb1f1b65dbd.zip tcl-c761f885ddfb0bfdc09e27db3399acb1f1b65dbd.tar.gz tcl-c761f885ddfb0bfdc09e27db3399acb1f1b65dbd.tar.bz2 |
[80304238ac] Prevent RC cycle in the localVarName objtype.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/var.test | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/var.test b/tests/var.test index 0531746..b6b09fd 100644 --- a/tests/var.test +++ b/tests/var.test @@ -921,6 +921,34 @@ test var-22.0 {leak in array element unset: Bug a3309d01db} -setup { rename getbytes {} rename doit {} } -result 0 +test var-22.1 {leak in localVarName intrep: Bug 80304238ac} -setup { + proc getbytes {} { + lindex [split [memory info] \n] 3 3 + } + proc doit {} { + interp create slave + slave eval { + proc doit script { + eval $script + set foo bar + } + doit {foreach foo baz {}} + } + interp delete slave + } +} -constraints memory -body { + set end [getbytes] + for {set i 0} {$i < 5} {incr i} { + doit + set tmp $end + set end [getbytes] + } + set leakedBytes [expr {$end - $tmp}] +} -cleanup { + array unset A + rename getbytes {} + rename doit {} +} -result 0 catch {namespace delete ns} |