[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>

なかだです。

15 messages 2005/06/02

[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>

最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。

32 messages 2005/06/09
[#26323] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/10

In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,

[#26329] Re: rb_gc_mark_threads spin — nobu@... 2005/06/10

なかだです。

[#26331] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26333] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <8764wlil9l.fsf@m17n.org>,

[#26334] Re: rb_gc_mark_threads spin — nobu@... 2005/06/11

なかだです。

[#26337] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>

NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント

24 messages 2005/06/29
[#26477] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

ごとうゆうぞうです。

[#26480] Re: WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,

[#26481] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

In message <87fyupzgcq.fsf@m17n.org>,

[#26421] Subversion — Shugo Maeda <shugo@...>

前田です。

24 messages 2005/06/30
[#26422] Re: Subversion — Yukihiro Matsumoto <matz@...> 2005/06/30

まつもと ゆきひろです

[#26423] Re: Subversion — "U.Nakamura" <usa@...> 2005/06/30

こんにちは、なかむら(う)です。

[ruby-dev:26305] ext/tk/sample/tkextlib/ICONS/viewIcons.rb

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-06-08 12:00:35 UTC
List: ruby-dev #26305
山本です。

下のようなエラーが出ました。

E:\ruby-cvs\bcc32>ruby19 -C ..\ruby\ext\tk\sample\tkextlib\ICONS viewIcons.rb
E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:79:in `new': wrong number of argu
ments (2 for 1) (ArgumentError)
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:79:in `new'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `create'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `collect'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `create'
        from viewIcons.rb:296:in `display_icons'
        from viewIcons.rb:177:in `initialize'
        from viewIcons.rb:327

該当個所は

    def self.new(name, keys=nil)
      Tk_IMGTBL["::icon::#{name}"] || super
    end

となっていて、super で TkImage.new(keys) が呼ばれているようだったので、

Index: icons.rb
===================================================================
RCS file: /src/ruby/ext/tk/lib/tkextlib/ICONS/icons.rb,v
retrieving revision 1.4
diff -u -w -b -p -r1.4 icons.rb
--- icons.rb	30 May 2005 14:53:46 -0000	1.4
+++ icons.rb	8 Jun 2005 10:20:44 -0000
@@ -75,8 +75,8 @@ module Tk
 
     ##########################################
 
-    def self.new(name, keys=nil)
-      Tk_IMGTBL["::icon::#{name}"] || super
+    def self.new(name, keys={})
+      Tk_IMGTBL["::icon::#{name}"] || super(keys.merge(:imagename=>name))
     end
 
     def initialize(name, keys=nil)

としました。これで直ったと思ったのですが、今度はカラムサイズ変更ボタンを押したときに

RuntimeError: image "::icon::without_creatingtrueimagenameactattach16" doesn't exist
---< backtrace of Ruby side >-----
E:/ruby-cvs/bcc32/.ext/tk.rb:2085:in `_invoke'
E:/ruby-cvs/bcc32/.ext/tk.rb:2085:in `_invoke'
E:/ruby-cvs/bcc32/.ext/tk.rb:1570:in `_ip_invoke_core'
E:/ruby-cvs/bcc32/.ext/tk.rb:1604:in `_tk_call_core'
E:/ruby-cvs/bcc32/.ext/tk.rb:1628:in `tk_call'
E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:63:in `delete'
viewIcons.rb:291:in `display_icons'
viewIcons.rb:323:in `set_columns'
viewIcons.rb:40:in `_create_controls'
viewIcons.rb:40:in `call'
E:/ruby-cvs/bcc32/.ext/tk.rb:1125:in `cb_eval'
E:/ruby-cvs/bcc32/.ext/tk.rb:1076:in `call'
E:/ruby-cvs/bcc32/.ext/tk.rb:1219:in `callback'
E:/ruby-cvs/bcc32/.ext/tk.rb:1218:in `catch'
E:/ruby-cvs/bcc32/.ext/tk.rb:1218:in `callback'
E:/ruby-cvs/bcc32/.ext/tk.rb:1249:in `mainloop'
E:/ruby-cvs/bcc32/.ext/tk.rb:1439:in `mainloop'
viewIcons.rb:329
---< backtrace of Tk side >-------
    invoked from within
"rb_out c00004"
    invoked from within
".w00001.w00002.w00013 invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "tk::ButtonUp" line 24)
    invoked from within
"tk::ButtonUp .w00001.w00002.w00013"
    (command bound to event)

というエラーが出てしまいました。よくわからなくなったので呼び出し順を
調べるために下のようにしたところ、

Index: icons.rb
===================================================================
RCS file: /src/ruby/ext/tk/lib/tkextlib/ICONS/icons.rb,v
retrieving revision 1.4
diff -u -w -b -p -r1.4 icons.rb
--- icons.rb	30 May 2005 14:53:46 -0000	1.4
+++ icons.rb	8 Jun 2005 11:41:33 -0000
@@ -75,11 +75,12 @@ module Tk
 
     ##########################################
 
-    def self.new(name, keys=nil)
-      Tk_IMGTBL["::icon::#{name}"] || super
+    def self.new(name, keys={})
+      Tk_IMGTBL["::icon::#{name}"] || super(keys.merge(:imagename=>name))
     end
 
     def initialize(name, keys=nil)
+      raise "aaa"
       if name.kind_of?(String) && name =~ /^::icon::(.+)$/
           @name = $1
           @path = name

こうなり、TkImage の self.new で呼ばれる super から、サブクラスの ICONS の
initialize が呼ばれているというよくわからない結果になりました。

E:\ruby-cvs\bcc32>ruby19 -C ..\ruby\ext\tk\sample\tkextlib\ICONS viewIcons.rb
E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:83:in `initialize': aaaa (Runtime
Error)
        from E:/ruby-cvs/bcc32/.ext/tk/image.rb:46:in `new'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:79:in `new'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `create'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `collect'
        from E:/ruby-cvs/bcc32/.ext/tkextlib/ICONS/icons.rb:44:in `create'
        from viewIcons.rb:296:in `display_icons'
        from viewIcons.rb:177:in `initialize'
        from viewIcons.rb:327

どうすればいいのかわからないので、報告だけ。

In This Thread

Prev Next