From: "H.Yamamoto" Date: 2005-06-09T08:47:53+09:00 Subject: [ruby-dev:26310] Re: ext/tk/sample/tkextlib/ICONS/viewIcons.rb 山本です。 他にも self.new から super が呼ばれている場所がありますが、全部 そのクラスの initialize を呼ぶ意図だったりしますか? 下のパッチは、self.new での super の挙動に依存せず、直接そのクラスの initialize を呼ぶようにしてみたものです。 # 本当は TkObject とそのサブクラス以外から呼べないようにしたかった # のですが、やりかたがよくわかりませんでした。また、default_new # という名前は適当です。 Index: ext/tk/lib/tkextlib/ICONS/icons.rb =================================================================== RCS file: /src/ruby/ext/tk/lib/tkextlib/ICONS/icons.rb,v retrieving revision 1.5 diff -u -w -b -p -r1.5 icons.rb --- ext/tk/lib/tkextlib/ICONS/icons.rb 8 Jun 2005 14:42:06 -0000 1.5 +++ ext/tk/lib/tkextlib/ICONS/icons.rb 8 Jun 2005 23:39:26 -0000 @@ -76,11 +76,7 @@ module Tk ########################################## def self.new(name, keys=nil) - unless obj = Tk_IMGTBL["::icon::#{name}"] - obj = allocate() - obj.instance_eval{initialize(name, keys)} - end - obj + Tk_IMGTBL["::icon::#{name}"] || self.default_new(name, keys) end def initialize(name, keys=nil) Index: ext/tk/lib/tk/image.rb =================================================================== RCS file: /src/ruby/ext/tk/lib/tk/image.rb,v retrieving revision 1.8 diff -u -w -b -p -r1.8 image.rb --- ext/tk/lib/tk/image.rb 9 Apr 2005 09:27:49 -0000 1.8 +++ ext/tk/lib/tk/image.rb 8 Jun 2005 23:39:12 -0000 @@ -43,7 +43,7 @@ class TkImage