Project

General

Profile

Actions

Bug #12253

closed

tkとmechanizeを併用してTkButtonを押すと"TypeError: allocator undefined for TkEvent::Event"エラーが起こる

Added by aves_ramphastos (Seigo Ishigane) about 8 years ago. Updated almost 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.4p230 (2015-12-16 revision 53155) [x64-mingw32]
[ruby-dev:49554]

Description

Rubyコミュニティ 御中

恐れ入りますがお尋ねしたいことがあり、チケットを切りました。

ruby/tkとmechanizeを併用した際に「TypeError: allocator undefined for TkEvent::Event」というエラーが発生します。
2.2.4ではエラーになるのですが、2.1.8では問題なく動作します。
2.3.0はいまのところ "gem install mechanize" が失敗する(mechanizeが依存しているnokogiriが2.3.0未対応の)ため、調査はできていません。

誠に恐れ入りますが、当方に誤りがあるか、何らかの不具合か、ご確認をお願いできますでしょうか?
急ぎではないためお時間があればで大丈夫です。

実験に使ったコード、エラーメッセージ、インストールしているgemを以下に記載致します。

コード

require 'tk'
require 'mechanize'

root = TkRoot.new
root.title = "test"

test_button = TkButton.new(root,
                  'text' => 'test').pack

test_button.bind('ButtonRelease-1', proc {|ev|
                   puts "test"})
Tk.mainloop

エラー

TypeError: allocator undefined for TkEvent::Event
---< backtrace of Ruby side >-----
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk/event.rb:517:in `new'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk/event.rb:517:in `block in install_bind_for_event_class'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1460:in `call'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1460:in `eval_cmd'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1460:in `cb_eval'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1407:in `call'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1611:in `block in callback'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1610:in `catch'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1610:in `callback'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1305:in `mainloop'
C:/Apps/ruby/2.2.4-x64/lib/ruby/2.2.0/tk.rb:1305:in `block in <module:TkCore>'
---< backtrace of Tk side >-------
    invoked from within
"rb_out c00001 26 ?? ?? ?? 0 ?? ?? ?? 0x0000000000000000 0x0000000000000000 5 .w00000 174 149 ?? 1 ?? ?? ?? ?? 0x000000000013025A ?? ?? ?? ?? 264 35014..."
    (command bound to event)

エラーが生じるrubyのバージョン

C:\Users\dummy\Desktop>ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x64-mingw32]

C:\Users\dummy\Desktop>gem -v
2.4.5.1

C:\Users\dummy\Desktop>gem list

*** LOCAL GEMS ***

bigdecimal (1.2.6)
domain_name (0.5.20160310)
http-cookie (1.0.2)
io-console (0.4.3)
json (1.8.1)
mechanize (2.7.4)
mime-types (2.99.1)
mini_portile2 (2.0.0)
minitest (5.4.3)
net-http-digest_auth (1.4)
net-http-persistent (2.9.4)
nokogiri (1.6.7.2 x64-mingw32)
ntlm-http (0.1.1)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
test-unit (3.0.8)
unf (0.1.4)
unf_ext (0.0.7.2 x64-mingw32)
webrobots (0.1.2)

問題なく動作するrubyのバージョン

C:\Users\dummy\Desktop>ruby -v
ruby 2.1.8p440 (2015-12-16 revision 53160) [x64-mingw32]

C:\Users\dummy\Desktop>gem -v
2.2.5

C:\Users\dummy\Desktop>gem list

*** LOCAL GEMS ***

bigdecimal (1.2.4)
domain_name (0.5.20160310)
http-cookie (1.0.2)
io-console (0.4.3)
json (1.8.1)
mechanize (2.7.4)
mime-types (2.99.1)
mini_portile2 (2.1.0)
minitest (4.7.5)
net-http-digest_auth (1.4)
net-http-persistent (2.9.4)
nokogiri (1.6.8.rc3 x64-mingw32)
ntlm-http (0.1.1)
pkg-config (1.1.7)
psych (2.0.5)
rake (10.1.0)
rdoc (4.1.0)
test-unit (2.1.8.0)
unf (0.2.0.beta2)
webrobots (0.1.2)

以上、恐れ入りますがよろしくお願いいたします。


Files

tk_error.jpg (54 KB) tk_error.jpg aves_ramphastos (Seigo Ishigane), 04/06/2016 02:27 PM

Updated by aves_ramphastos (Seigo Ishigane) about 8 years ago

申し訳ありません。いま気づいて上記のコードから

require 'mechanize'

をはずしたらどうなるかを試しました。
結果は同じで、2.1.8では動作しますが、2.2.4では上記と同様のエラーでした。

タイトルは「2.2.4ではTkRootを明示的にnewするとエラーになる」のほうが適切だったかもしれません。

Updated by aves_ramphastos (Seigo Ishigane) about 8 years ago

はじめのコードより

require 'mechanize'

をはずして2.3.0p0で試した結果、エラー無く動作しました。

申し訳ありません、当方の早とちりでお手数をお掛けしました。
恐れ入りますがチケットのクローズをお願い致します。

Updated by nobu (Nobuyoshi Nakada) about 8 years ago

  • Description updated (diff)
  • Status changed from Open to Closed
  • Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: DONTNEED, 2.2: REQUIRED, 2.3: DONTNEED

backport r50338.

Updated by usa (Usaku NAKAMURA) almost 8 years ago

  • Backport changed from 2.1: DONTNEED, 2.2: REQUIRED, 2.3: DONTNEED to 2.1: DONTNEED, 2.2: DONE, 2.3: DONTNEED

ruby_2_2 r54672 merged revision(s) 50338.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0