From 53c584d35db576377c4aa803c8f5a28c2d52eede Mon Sep 17 00:00:00 2001 From: nagai Date: Mon, 27 Dec 2004 11:04:21 +0000 Subject: * ext/tcltklib/tcltklib.c: fix SEGV bug when deleting Tk interp * ext/tk/lib/multi-tk.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/tk/lib/multi-tk.rb | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) (limited to 'ext/tk/lib/multi-tk.rb') diff --git a/ext/tk/lib/multi-tk.rb b/ext/tk/lib/multi-tk.rb index f44f576626..d292b5089d 100644 --- a/ext/tk/lib/multi-tk.rb +++ b/ext/tk/lib/multi-tk.rb @@ -189,7 +189,9 @@ class MultiTkIp unless ip.deleted? ip._split_tklist(ip._invoke('interp', 'slaves')).each{|name| begin - ip._eval_without_enc("#{name} eval {foreach i [after info] {after cancel $i}}") + # ip._eval_without_enc("#{name} eval {foreach i [after info] {after cancel $i}}") + after_ids = ip._eval_without_enc("#{name} eval {after info}") + ip._eval_without_enc("#{name} eval {foreach i {#{after_ids}} {after cancel $i}}") rescue Exception end begin @@ -236,7 +238,9 @@ class MultiTkIp @slave_ip_tbl.each{|name, subip| _destroy_slaves_of_slaveIP(subip) begin - subip._eval_without_enc("foreach i [after info] {after cancel $i}") + # subip._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = subip._eval_without_enc("after info") + subip._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end =begin @@ -270,7 +274,9 @@ class MultiTkIp } begin - @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + # @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = @interp._eval_without_enc("after info") + @interp._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end begin @@ -310,7 +316,9 @@ class MultiTkIp @slave_ip_tbl.each{|name, subip| _destroy_slaves_of_slaveIP(subip) begin - subip._eval_without_enc("foreach i [after info] {after cancel $i}") + # subip._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = subip._eval_without_enc("after info") + subip._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end =begin @@ -344,7 +352,9 @@ class MultiTkIp } begin - @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + # @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = @interp._eval_without_enc("after info") + @interp._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end =begin @@ -1315,7 +1325,7 @@ class MultiTkIp @cmd_queue.enq([nil, cmd, *args]) rescue Exception => e # ignore - if $DEBUG || true + if $DEBUG warn("Warning: " + e.class.inspect + ((e.message.length > 0)? ' "' + e.message + '"': '') + " on " + self.inspect) @@ -1821,7 +1831,9 @@ class MultiTkIp end =end begin - subip._eval_without_enc("foreach i [after info] {after cancel $i}") + # subip._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = subip._eval_without_enc("after info") + subip._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end @@ -1850,7 +1862,9 @@ class MultiTkIp } begin - @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + # @interp._eval_without_enc("foreach i [after info] {after cancel $i}") + after_ids = @interp._eval_without_enc("after info") + @interp._eval_without_enc("foreach i {#{after_ids}} {after cancel $i}") rescue Exception end =begin -- cgit v1.2.3