diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-27 11:04:21 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-27 11:04:21 +0000 |
commit | 23182e77ad4f02b55674866c0a17f91bd5a9c3d2 (patch) | |
tree | 0ef3edfd59497f4e35ea66462c692182d1af0f03 /ext/tk/lib/multi-tk.rb | |
parent | 16cdfdad284ce9b65b95ff5bc2dcdeaa73f60dcc (diff) |
* 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/branches/ruby_1_8@7667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/multi-tk.rb')
-rw-r--r-- | ext/tk/lib/multi-tk.rb | 30 |
1 files changed, 22 insertions, 8 deletions
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 |