summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMiguel Sofer <miguel.sofer@gmail.com>2007-03-29 19:22:06 (GMT)
committerMiguel Sofer <miguel.sofer@gmail.com>2007-03-29 19:22:06 (GMT)
commit9a08b056c6086eb886da58e32ce8efae27b13b25 (patch)
treeaaebbb983b9e940b00166ec9717ed8a806e71017 /tests
parentf0dcf496f096fd97761a4392ff77c13f9eb49707 (diff)
downloadtcl-9a08b056c6086eb886da58e32ce8efae27b13b25.zip
tcl-9a08b056c6086eb886da58e32ce8efae27b13b25.tar.gz
tcl-9a08b056c6086eb886da58e32ce8efae27b13b25.tar.bz2
* generic/tclProc.c (Tcl_ApplyObjCmd):
* tests/apply.test (9.3): Fixed Tcl_Obj leak on error return; an unneeded ref to lambdaPtr was being set and not released on an error return path.
Diffstat (limited to 'tests')
-rw-r--r--tests/apply.test20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/apply.test b/tests/apply.test
index 10131ce..93c77a2 100644
--- a/tests/apply.test
+++ b/tests/apply.test
@@ -12,7 +12,7 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: apply.test,v 1.9 2006/10/28 22:48:43 dkf Exp $
+# RCS: @(#) $Id: apply.test,v 1.10 2007/03/29 19:22:08 msofer Exp $
if {[lsearch [namespace children] ::tcltest] == -1} {
package require tcltest
@@ -301,6 +301,24 @@ test apply-9.2 {leaking internal rep} -setup {
} -cleanup {
rename getbytes {}
} -result 0
+test apply-9.3 {leaking internal rep} -setup {
+ proc getbytes {} {
+ set lines [split [memory info] "\n"]
+ lindex $lines 3 3
+ }
+} -constraints memory -body {
+ set end [getbytes]
+ for {set i 0} {$i < 5} {incr i} {
+ set x [list {} {set a 1} ::NS::THAT::DOES::NOT::EXIST]
+ catch {::apply $x}
+ set x {}
+ set tmp $end
+ set end [getbytes]
+ }
+ set leakedBytes [expr {$end - $tmp}]
+} -cleanup {
+ rename getbytes {}
+} -result 0
# Tests for the avoidance of recompilation