From: Masao M. <mu...@hi...> - 2007-05-13 17:31:15
|
むとうです。 原因はメモリの解放しすぎ、だと思うのですが、 手元の0.16.0では直っているようです。 よろしければ0.16.0で確認していただけませんか? #Debianってまだ0.15.0なんですね・・・。 On Fri, 11 May 2007 16:51:40 +0900 Kazuhiro NISHIYAMA <zn...@mb...> wrote: > 西山和広です。 > > 内容が変化するpopup menuのためGtk::Menuを繰り返し生成していると、 > *** glibc detected *** corrupted double-linked list: 0x083700f0 *** > などで落ちることがあるのですが、何が原因なのでしょうか? > > 環境はDebian etchで、libgtk2-rubyは0.15.0-1.1で、 > > % ruby1.8 -v > ruby 1.8.5 (2006-08-25) [i486-linux] > % ruby1.8 -r gtk2 -e 'p Gtk::VERSION' > [2, 8, 20] > % > > となっています。 > > この環境で以下のプログラムを実行していると5〜10秒ぐらいで > 落ちます。 > > #!/usr/bin/ruby1.8 -Ku > # -*- coding: utf-8 -*- > require 'gtk2' > > def popup_menu > return @popup_menu if @popup_menu > @popup_menu = Gtk::Menu.new > > quit_menu_item = Gtk::MenuItem.new("_Quit") > quit_menu_item.signal_connect("activate") do > Gtk.main_quit > end > @popup_menu.append(quit_menu_item) > > @popup_menu.show_all > return @popup_menu > end > > def start_check > Gtk.timeout_add(5) do > if @popup_menu and not @using_popup > menu = @popup_menu > @popup_menu = nil > p menu > menu.destroy > #GC.start > end > popup_menu > true > end > end > > def start_gtk_window > @window = Gtk::Window.new > @window.show_all > > @window.add_events(Gdk::Event::BUTTON_PRESS_MASK) > @window.signal_connect("destroy") do > Gtk.main_quit > end > @window.signal_connect("button_press_event") do |widget, event| > case event.button > when 1 > @using_popup = false > when 3 > @using_popup = true > popup_menu.popup(nil, nil, event.button, event.time) > end > end > end > > Gtk.init > start_gtk_window > start_check > Gtk.main > > > -- > |ZnZ(ゼット エヌ ゼット) > |西山和広(Kazuhiro NISHIYAMA) > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > ruby-gnome2-devel-ja mailing list > rub...@li... > https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja > |