You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(32) |
Jun
(60) |
Jul
(52) |
Aug
(67) |
Sep
(167) |
Oct
(186) |
Nov
(173) |
Dec
(220) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(37) |
Feb
(66) |
Mar
(89) |
Apr
(71) |
May
(32) |
Jun
(61) |
Jul
(64) |
Aug
(99) |
Sep
(33) |
Oct
(31) |
Nov
(50) |
Dec
(41) |
2004 |
Jan
(9) |
Feb
(9) |
Mar
(25) |
Apr
(23) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(9) |
Sep
(1) |
Oct
(31) |
Nov
(38) |
Dec
|
2005 |
Jan
(16) |
Feb
(49) |
Mar
(14) |
Apr
(1) |
May
|
Jun
(12) |
Jul
(25) |
Aug
(18) |
Sep
(48) |
Oct
(76) |
Nov
(20) |
Dec
|
2006 |
Jan
(16) |
Feb
(12) |
Mar
(4) |
Apr
(5) |
May
(77) |
Jun
(37) |
Jul
(15) |
Aug
|
Sep
(3) |
Oct
(15) |
Nov
(7) |
Dec
(27) |
2007 |
Jan
(3) |
Feb
(2) |
Mar
|
Apr
|
May
(7) |
Jun
(18) |
Jul
(44) |
Aug
(12) |
Sep
(1) |
Oct
(13) |
Nov
(15) |
Dec
(5) |
2008 |
Jan
|
Feb
|
Mar
(16) |
Apr
(2) |
May
(8) |
Jun
(1) |
Jul
|
Aug
|
Sep
(8) |
Oct
(6) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(2) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(3) |
2010 |
Jan
(8) |
Feb
(8) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(17) |
Oct
(7) |
Nov
(3) |
Dec
|
2011 |
Jan
(34) |
Feb
(47) |
Mar
(12) |
Apr
(1) |
May
(2) |
Jun
(2) |
Jul
(20) |
Aug
(4) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(40) |
2012 |
Jan
(10) |
Feb
(8) |
Mar
|
Apr
(5) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
2013 |
Jan
(2) |
Feb
(33) |
Mar
(21) |
Apr
(10) |
May
(29) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(21) |
Nov
(21) |
Dec
(7) |
2014 |
Jan
(3) |
Feb
(12) |
Mar
(9) |
Apr
(4) |
May
(12) |
Jun
|
Jul
|
Aug
(5) |
Sep
(23) |
Oct
(29) |
Nov
(2) |
Dec
(1) |
2015 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
(8) |
From: Masahiro S. ()
<sa...@to...> - 2006-06-14 06:56:11
|
酒井です。 From: "Kouhei Sutou" <ko...@co...> Date: Wed, 14 Jun 2006 11:11:48 +0900 > 須藤です. > > Ruby側で登録したコールバック(例えばsignal_connectとか)がCから呼び出される > とします.例えば,以下のようなプログラムで,以下のコマンドでコンパイルでき > ます. > > % cc `pkg-config gtk+-2.0 cairo --cflags --libs` \ > -I`ruby -rrbconfig -e 'print Config::CONFIG["archdir"]'` \ > -l`ruby -rrbconfig -e 'print Config::CONFIG["RUBY_SO_NAME"]'` \ > -o test test.c > > #include <gtk/gtk.h> > #include <ruby.h> > > int > main(int argc, char **argv) > { > gtk_init(&argc, &argv); > > ruby_init(); > ruby_init_loadpath(); > ruby_script(argv[0]); > ruby_set_argv(argc, argv); > > rb_eval_string("require 'gtk2'\n" > "Gtk.init\n" > "Gtk.timeout_add(0) do\n" > " raise 'timeout'\n" > "end\n"); > > gtk_main(); > > return 0; > } > > これを実行するとSegmentation faultで落ちます. > > (eval):3: [BUG] Segmentation fault > ruby 1.8.4 (2005-12-24) [i486-linux] このコードについては、Gtk.timeout_add で登録したブロックを呼び出す gtk_m_functionがrb_protectを使っていないのがまずいので、 それを修正すれば良いと思います。 > Rubyで書くとこんな感じですが,こちらは落ちません. > > require "gtk2" > > Gtk.init > Gtk.timeout_add(0) do > raise "timeout" > end > > Gtk.main こっちで落ちないのは、ruby_run()から実行されているため、 上のコードと異なり「例外でのジャンプ先」がちゃんとあるからです。 -- 酒井 政裕 / Masahiro Sakai |
From: Kouhei S. <ko...@co...> - 2006-06-14 04:52:52
|
須藤です. Ruby側で登録したコールバック(例えばsignal_connectとか)がCから呼び出される とします.例えば,以下のようなプログラムで,以下のコマンドでコンパイルでき ます. % cc `pkg-config gtk+-2.0 cairo --cflags --libs` \ -I`ruby -rrbconfig -e 'print Config::CONFIG["archdir"]'` \ -l`ruby -rrbconfig -e 'print Config::CONFIG["RUBY_SO_NAME"]'` \ -o test test.c #include <gtk/gtk.h> #include <ruby.h> int main(int argc, char **argv) { gtk_init(&argc, &argv); ruby_init(); ruby_init_loadpath(); ruby_script(argv[0]); ruby_set_argv(argc, argv); rb_eval_string("require 'gtk2'\n" "Gtk.init\n" "Gtk.timeout_add(0) do\n" " raise 'timeout'\n" "end\n"); gtk_main(); return 0; } これを実行するとSegmentation faultで落ちます. (eval):3: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [i486-linux] Rubyで書くとこんな感じですが,こちらは落ちません. require "gtk2" Gtk.init Gtk.timeout_add(0) do raise "timeout" end Gtk.main なかださんにいろいろ教えてもらっていて,詳しいことはそちらを みてもらうとよいと思いますが,私にはよくわからないところがあ ります. http://www.rubyist.net/~nobu/t/20060611.html#c01 http://www.rubyist.net/~nobu/t/20060612.html#p01 http://www.rubyist.net/~nobu/t/20060612.html#c02 http://www.rubyist.net/~nobu/t/20060614.html#p01 それは,一番最後の http://www.rubyist.net/~nobu/t/20060614.html#p01 で言われている「境界面でラップする」という解決法を具体的にど のように実現すればよいかがわかりません.だれか教えてもらえま せんか? |
From: Masao M. <mu...@hi...> - 2006-06-12 15:45:14
|
むとうです。 最近、さかいさん、須藤さん、Sjordに活躍して頂いた おかげで、だいぶ、安定してきたのではないかと思います。 そこで、7/1,2くらいを目処に一度リリースをしようと 思うのですが、いかがでしょうか。 #特に反対がなければその日程で。 で、ちょっとその前にBug trackerのバグをつぶしておきたい のですが、どうも、私一人では(時間的にも技術的にも)フィクス しきれなさそうな気がしています。 そこで、どなたかトライしていただけると助かります。 http://sourceforge.net/tracker/?atid=470969&group_id=53614&func=browse まぁ、ぶっちゃけ直せなくてもリリースしちゃおうかなぐらいの 気分ですが(苦笑)。 それでは。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-12 15:39:32
|
むとうです。 On Mon, 12 Jun 2006 01:13:36 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > Gtk.init を導入するきっかけになった私が言うのもアレなのですが、 > 毎回 Gtk.init しなくてはいけないのは、「設定無しが良い設定」 > という観点から、あまり良くない設計だと思うようになりました。 > > そこで提案なのですが、現在の gtk2.rb の中身を gtk2/base.rb の > ようなファイル(名前は適当)に移動して、gtk2.rb 自体は > 「require 'gtk2/base'; Gtk.init」のような中身にするというのは > どうでしょうか? > > そうすれば、一般のアプリケーションでは require 'gtk2' するだ > けで Gtk.init なしで使うことが出来、またgtk+を自分自身で初期 > 化する必要のある特殊なアプリケーションでは、 require 'gtk2' > のかわりに require 'gtk2/base' とすることで、自分で Gtk.init > を使ってgtk+を初期化することが出来ます。 なるほど。基本的には賛成です。 ちょっと気になるのが、 1. "gtk2/base"のためだけにフォルダを作ること。 2. 互換性を残す の2点ですが、まぁ、1は許容範囲ですかね。 2.は必須ですね。従来のGtk.initを呼び出しているのはそのまま使える ようにするのと、Gnome::Program.newがおかしくならなければ良いのかな。 その辺だけ気をつけて頂いた上で、お任せしちゃってよろしいですか? -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-06-11 16:13:59
|
Gtk.init を導入するきっかけになった私が言うのもアレなのですが、 毎回 Gtk.init しなくてはいけないのは、「設定無しが良い設定」 という観点から、あまり良くない設計だと思うようになりました。 そこで提案なのですが、現在の gtk2.rb の中身を gtk2/base.rb の ようなファイル(名前は適当)に移動して、gtk2.rb 自体は 「require 'gtk2/base'; Gtk.init」のような中身にするというのは どうでしょうか? そうすれば、一般のアプリケーションでは require 'gtk2' するだ けで Gtk.init なしで使うことが出来、またgtk+を自分自身で初期 化する必要のある特殊なアプリケーションでは、 require 'gtk2' のかわりに require 'gtk2/base' とすることで、自分で Gtk.init を使ってgtk+を初期化することが出来ます。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-06-11 15:54:22
|
むとうです。 On Mon, 12 Jun 2006 00:50:09 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > GnomeVFS::File の #print, #puts, #printf, #<< ですが、 > rb_io_print, rb_io_puts, rb_io_printf, rb_io_addstr を使って > 実装すると、IOの振る舞いに合わせることが出来ます。 > > # これらが導入された経緯は > # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15830 > # のスレッドを参照。 > > ただ、これらはRuby-1.6.6以前では使えないのですが、 > 1.6系はさすがにもう切り捨ててますよね? はい。そうしましょう。CVSの方、お願いします。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-06-11 15:50:51
|
GnomeVFS::File の #print, #puts, #printf, #<< ですが、 rb_io_print, rb_io_puts, rb_io_printf, rb_io_addstr を使って 実装すると、IOの振る舞いに合わせることが出来ます。 # これらが導入された経緯は # http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15830 # のスレッドを参照。 ただ、これらはRuby-1.6.6以前では使えないのですが、 1.6系はさすがにもう切り捨ててますよね? -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-06-11 01:10:03
|
むとうです。 On Sun, 11 Jun 2006 03:29:21 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > 昔書いたGnomeVFS#readへのパッチを見つけたので、 > とりあえずHEADに当たるように修正して送ります。 > > やっているのは以下の二点です。 > 1) IO#read同様に、結果を格納する文字列を受け取れるようにした。 > 2) サイズを指定しない場合のreadの実装を改善。 > gnome_vfs_get_file_info_from_handle()で正しいファイルサイズを得られ > ない場合や、gnome_vfs_tell()がサポートされていない場合でも動くように。 了解です。CVSへあててくださいませ。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-06-10 18:32:00
|
酒井です。 昔書いたGnomeVFS#readへのパッチを見つけたので、 とりあえずHEADに当たるように修正して送ります。 やっているのは以下の二点です。 1) IO#read同様に、結果を格納する文字列を受け取れるようにした。 2) サイズを指定しない場合のreadの実装を改善。 gnome_vfs_get_file_info_from_handle()で正しいファイルサイズを得られ ない場合や、gnome_vfs_tell()がサポートされていない場合でも動くように。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-06-10 18:04:16
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 10 Jun 2006 04:27:33 +0900 > むとうです。 > > On Thu, 8 Jun 2006 22:52:39 +0900 > Masao Mutoh <mu...@hi...> wrote: > > > > > GC時にプロパティをmarkするようにしたことの影響っぽいです。 > > > > 調べときます。 > > > > > > warningに関してはgtk側の問題ですね。 > > > http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktreeview.c?rev=1.503&view=markup > > > http://bugzilla.gnome.org/show_bug.cgi?id=163851 > > > > そうでしたか。 > > でも、症状が発生するようになる前後で > > 特にGTK2のバージョンをあげた記憶は無いんですが・・・。 元々GTK2にあった問題が、GC時にプロパティをmarkするようにしたことで顕在化 したということで。 > > > boolean等のプロパティはそもそもmarkする必要がないので、 > > > プロパティを取得しないようにしようとは思っていて、 > > > それが出来ればこのwarningについては直るはずです。 > > > > そういえば、今日のSjoerdのパッチ(en MLのやつです)って > > これの件ですかね。そのまま当ててもらっちゃって問題ないですか? 問題ないです。 タイムリーですね。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-06-09 19:27:44
|
むとうです。 On Thu, 8 Jun 2006 22:52:39 +0900 Masao Mutoh <mu...@hi...> wrote: > > > GC時にプロパティをmarkするようにしたことの影響っぽいです。 > > > 調べときます。 > > > > warningに関してはgtk側の問題ですね。 > > http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktreeview.c?rev=1.503&view=markup > > http://bugzilla.gnome.org/show_bug.cgi?id=163851 > > そうでしたか。 > でも、症状が発生するようになる前後で > 特にGTK2のバージョンをあげた記憶は無いんですが・・・。 > > > boolean等のプロパティはそもそもmarkする必要がないので、 > > プロパティを取得しないようにしようとは思っていて、 > > それが出来ればこのwarningについては直るはずです。 > > そういえば、今日のSjoerdのパッチ(en MLのやつです)って > これの件ですかね。そのまま当ててもらっちゃって問題ないですか? とりあえず、Sjoerdにはパッチをあててくれるようにお願いしちゃいました。 問題あったらその後で、ということで。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-06-08 13:53:04
|
むとうです。 On Wed, 07 Jun 2006 16:10:39 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masahiro Sakai (酒井政裕) <sa...@to...> > Date: Wed, 07 Jun 2006 02:25:12 +0900 (JST) > > > 酒井です。 > > > > From: Masao Mutoh <mu...@hi...> > > Date: Tue, 6 Jun 2006 02:07:11 +0900 > > > > > さかいさん > > > > > > むとうです。 > > > > > > 以下のようなエラーが出るようになったのですが、 > > > もしかして、最近のGParam周りの修正された関係でしょうか。 > > > よろしければ見て頂けないでしょうか。 > > > #すみません、今、自分で見ている時間が取れなくて・・・。 > > > > > > 例えば、最近、enの方にJoe Van DykがポストしたTreeModelFilter > > > のサンプルをしばらく動かしておくと発生します。 > > > > > > なお、rbbrの最新版でもGParamBoolean周りのWarningが大量発生します。 > > > > GC時にプロパティをmarkするようにしたことの影響っぽいです。 > > 調べときます。 > > warningに関してはgtk側の問題ですね。 > http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktreeview.c?rev=1.503&view=markup > http://bugzilla.gnome.org/show_bug.cgi?id=163851 そうでしたか。 でも、症状が発生するようになる前後で 特にGTK2のバージョンをあげた記憶は無いんですが・・・。 > boolean等のプロパティはそもそもmarkする必要がないので、 > プロパティを取得しないようにしようとは思っていて、 > それが出来ればこのwarningについては直るはずです。 そういえば、今日のSjoerdのパッチ(en MLのやつです)って これの件ですかね。そのまま当ててもらっちゃって問題ないですか? -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-06-07 07:11:19
|
酒井です。 From: Masahiro Sakai (酒井政裕) <sa...@to...> Date: Wed, 07 Jun 2006 02:25:12 +0900 (JST) > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Tue, 6 Jun 2006 02:07:11 +0900 > > > さかいさん > > > > むとうです。 > > > > 以下のようなエラーが出るようになったのですが、 > > もしかして、最近のGParam周りの修正された関係でしょうか。 > > よろしければ見て頂けないでしょうか。 > > #すみません、今、自分で見ている時間が取れなくて・・・。 > > > > 例えば、最近、enの方にJoe Van DykがポストしたTreeModelFilter > > のサンプルをしばらく動かしておくと発生します。 > > > > なお、rbbrの最新版でもGParamBoolean周りのWarningが大量発生します。 > > GC時にプロパティをmarkするようにしたことの影響っぽいです。 > 調べときます。 warningに関してはgtk側の問題ですね。 http://cvs.gnome.org/viewcvs/gtk%2B/gtk/gtktreeview.c?rev=1.503&view=markup http://bugzilla.gnome.org/show_bug.cgi?id=163851 boolean等のプロパティはそもそもmarkする必要がないので、 プロパティを取得しないようにしようとは思っていて、 それが出来ればこのwarningについては直るはずです。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-06-06 17:25:31
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Tue, 6 Jun 2006 02:07:11 +0900 > さかいさん > > むとうです。 > > 以下のようなエラーが出るようになったのですが、 > もしかして、最近のGParam周りの修正された関係でしょうか。 > よろしければ見て頂けないでしょうか。 > #すみません、今、自分で見ている時間が取れなくて・・・。 > > 例えば、最近、enの方にJoe Van DykがポストしたTreeModelFilter > のサンプルをしばらく動かしておくと発生します。 > > なお、rbbrの最新版でもGParamBoolean周りのWarningが大量発生します。 GC時にプロパティをmarkするようにしたことの影響っぽいです。 調べときます。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-06-05 17:07:41
|
さかいさん むとうです。 以下のようなエラーが出るようになったのですが、 もしかして、最近のGParam周りの修正された関係でしょうか。 よろしければ見て頂けないでしょうか。 #すみません、今、自分で見ている時間が取れなくて・・・。 例えば、最近、enの方にJoe Van DykがポストしたTreeModelFilter のサンプルをしばらく動かしておくと発生します。 なお、rbbrの最新版でもGParamBoolean周りのWarningが大量発生します。 % ruby treemodelfilter2.rb treemodelfilter2.rb: line 17 Gtk-WARNING **:gtktreeview.c:1293: invalid property id 5 for "headers-clickable" of type `GParamBoolean' in `GtkTreeView' treemodelfilter2.rb:188: [BUG] Segmentation fault ruby 1.8.4 (2005-12-24) [i686-linux] zsh: abort ruby treemodelfilter2.rb Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1208890944 (LWP 5288)] 0x05f75b0c in gtk_tree_set_view_lines () from /usr/lib/libgtk-x11-2.0.so.0 (gdb) bt #0 0x05f75b0c in gtk_tree_set_view_lines () from /usr/lib/libgtk-x11-2.0.so.0 #1 0x05f0daad in gtk_scrolled_window_add_with_viewport () from /usr/lib/libgtk-x11-2.0.so.0 #2 0x05ec82e4 in gtk_list_store_get_type () from /usr/lib/libgtk-x11-2.0.so.0 #3 0x00445195 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #4 0x004217f9 in rbgobj_free (holder=0x8895340) at rbgobject.c:152 #5 0x0806b1d1 in rb_gc_call_finalizer_at_exit () at gc.c:1855 #6 0x08052916 in ruby_finalize_1 () at eval.c:1488 #7 0x080609d5 in ruby_cleanup (ex=0) at eval.c:1523 #8 0x08060a92 in ruby_stop (ex=0) at eval.c:1554 #9 0x0806652c in ruby_run () at eval.c:1575 #10 0x080521d4 in main (argc=2, argv=0xbfe37ca4, envp=0xbfe37cb0) at main.c:46 (gdb) #0 0x05f75b0c in gtk_tree_set_view_lines () from /usr/lib/libgtk-x11-2.0.so.0 #1 0x05f0daad in gtk_scrolled_window_add_with_viewport () from /usr/lib/libgtk-x11-2.0.so.0 #2 0x05ec82e4 in gtk_list_store_get_type () from /usr/lib/libgtk-x11-2.0.so.0 #3 0x00445195 in g_object_unref () from /usr/lib/libgobject-2.0.so.0 #4 0x004217f9 in rbgobj_free (holder=0x8895340) at rbgobject.c:152 #5 0x0806b1d1 in rb_gc_call_finalizer_at_exit () at gc.c:1855 #6 0x08052916 in ruby_finalize_1 () at eval.c:1488 #7 0x080609d5 in ruby_cleanup (ex=0) at eval.c:1523 #8 0x08060a92 in ruby_stop (ex=0) at eval.c:1554 #9 0x0806652c in ruby_run () at eval.c:1575 #10 0x080521d4 in main (argc=2, argv=0xbfe37ca4, envp=0xbfe37cb0) at main.c:46 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-29 16:15:18
|
むとうです。 On Mon, 29 May 2006 23:34:59 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > GLIST2ARY, GLIST2ARY2, GSLIST2ARY, GSLIST2ARY2 を使っている部分で > リークしている個所が結構あります。例えば以下のコードは、 > gtk_window_list_toplevels()が新たに確保したリストを、 > g_list_freeしていないためにリークしてます。 > > static VALUE > gwin_s_list_toplevels(self) > VALUE self; > { > return GLIST2ARY(gtk_window_list_toplevels()); > } ご指摘ありがとうございます。 なんで気づかなかったんだろう。見直さないとですねぇ。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-29 14:35:16
|
酒井です。 GLIST2ARY, GLIST2ARY2, GSLIST2ARY, GSLIST2ARY2 を使っている部分で リークしている個所が結構あります。例えば以下のコードは、 gtk_window_list_toplevels()が新たに確保したリストを、 g_list_freeしていないためにリークしてます。 static VALUE gwin_s_list_toplevels(self) VALUE self; { return GLIST2ARY(gtk_window_list_toplevels()); } -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-28 16:01:28
|
むとうです。 On Mon, 29 May 2006 00:11:11 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sun, 28 May 2006 22:52:07 +0900 > > > さかいさん > > > > むとうです。 > > > ところで、以下のスクリプトを試したところ、Gtk::Windowが増える一方です。 > > イメージ的にはafterが常に1になるような気がします。 > > これだとメモリリークしているような気がするのですがこういうものなんでしょうか。 > > もとよりGtkWindowは明示的にdestroyしない限りは生き残っているものなので、 > 対応するRuby側のオブジェクトも同様に生き残っているのが自然だと思い、 > このようにしてみました。 ごめんなさい! そうでしたそうでした。すっかり勘違いです。ごめんなさい。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-28 15:11:46
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sun, 28 May 2006 22:52:07 +0900 > さかいさん > > むとうです。 > ところで、以下のスクリプトを試したところ、Gtk::Windowが増える一方です。 > イメージ的にはafterが常に1になるような気がします。 > これだとメモリリークしているような気がするのですがこういうものなんでしょうか。 もとよりGtkWindowは明示的にdestroyしない限りは生き残っているものなので、 対応するRuby側のオブジェクトも同様に生き残っているのが自然だと思い、 このようにしてみました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-28 13:52:20
|
さかいさん むとうです。 On Sun, 28 May 2006 00:12:06 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 23:32:37 +0900 > > > むとうです。 > > > > サブクラスにも有効になるようRuby/GLib2側を変更してあります。 > > > > なるほど。 > > ちなみにこれに関して、どのファイルのどの辺りを見れば良いか教えて > > いただけませんか?ちょっとわからなくて・・・。 > > rbbogj_typeinstance.cのrbgobj_instance_call_cinfo_mark()で > 各cinfoのmarkを呼んでいます。 > この辺りはもっと整理したいと思っています。 > > > それから、rbgtkcontainer.cの中のcont_mark, cont_mark_callbackに > > それぞれデバッグ文を入れて、以下を実行したところ、デバック文が表示されなか > > ったのですがそういうもの(このタイミングではcont_markは呼ばれない)なのでしょうか。 > > すみません。バグってました。 > 先ほど修正しましたので、今度こそ大丈夫だと思います。 > > > Gtk::Window.newを呼んだときは、rbgtkcontainer.cのcont_mark > > が動く、という理解でいいですか?ってここを誤解してるのかな。 > > GC.startが呼ばれたタイミング? > > GC.startが呼ばれたタイミングです。 > > > require 'gtk2' > > > > Gtk.init > > def test > > Gtk::Window.new > > end > > loop { > > test > > GC.start > > } > > Windowに何かWidgetを追加しておけば、cont_mark_callbackが呼ばれるのも > 観察出来るはずです。 遅くなりました。 CVS版の最新版で試したところ、無事に観察できました。 ところで、以下のスクリプトを試したところ、Gtk::Windowが増える一方です。 イメージ的にはafterが常に1になるような気がします。 これだとメモリリークしているような気がするのですがこういうものなんでしょうか。 require 'gtk2' Gtk.init def test Gtk::Window.new.add(Gtk::Button.new("CLICK")) end loop { test p [:before, ObjectSpace.each_object(Gtk::Window) {}] GC.start p [:after, ObjectSpace.each_object(Gtk::Window) {}] } -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 15:13:28
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 23:42:24 +0900 > むとうです。 > > On Sat, 27 May 2006 22:42:27 +0900 (JST) > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > 酒井です。 > > > > 現在のRuby/GLib2には特異メソッドを定義することでシグナルハンドラを > > 定義する機能があり、例えば以下のような書き方が出来ます。 > > > > button = Gtk::Button.new("Test") > > def button.clicked(b) > > puts "clicked" > > end > > > > ただ、シグナル名は既存のメソッド名とかぶっていることが多いこともあり、 > > 混乱をまねくので、個人的には廃止した方が良いのではないかと思っています。 > > > > この機能を現在使っているプログラムってありますか? > > あれ?これって前に議論しましたね。廃止したのかと思ってました。 ありゃ、そうでしたっけ。 すっかり忘れてました。 > Undocumentな機能ですしサンプルも無いはずですので使われていないでしょう。 > この際、削除しちゃってくださいませ。 削除しました。 -- 酒井 政裕 / Masahiro Sakai |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 15:12:18
|
酒井です。 From: Masao Mutoh <mu...@hi...> Date: Sat, 27 May 2006 23:32:37 +0900 > むとうです。 > > サブクラスにも有効になるようRuby/GLib2側を変更してあります。 > > なるほど。 > ちなみにこれに関して、どのファイルのどの辺りを見れば良いか教えて > いただけませんか?ちょっとわからなくて・・・。 rbbogj_typeinstance.cのrbgobj_instance_call_cinfo_mark()で 各cinfoのmarkを呼んでいます。 この辺りはもっと整理したいと思っています。 > それから、rbgtkcontainer.cの中のcont_mark, cont_mark_callbackに > それぞれデバッグ文を入れて、以下を実行したところ、デバック文が表示されなか > ったのですがそういうもの(このタイミングではcont_markは呼ばれない)なのでしょうか。 すみません。バグってました。 先ほど修正しましたので、今度こそ大丈夫だと思います。 > Gtk::Window.newを呼んだときは、rbgtkcontainer.cのcont_mark > が動く、という理解でいいですか?ってここを誤解してるのかな。 > GC.startが呼ばれたタイミング? GC.startが呼ばれたタイミングです。 > require 'gtk2' > > Gtk.init > def test > Gtk::Window.new > end > loop { > test > GC.start > } Windowに何かWidgetを追加しておけば、cont_mark_callbackが呼ばれるのも 観察出来るはずです。 -- 酒井 政裕 / Masahiro Sakai |
From: Masao M. <mu...@hi...> - 2006-05-27 14:42:33
|
むとうです。 On Sat, 27 May 2006 22:42:27 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > 現在のRuby/GLib2には特異メソッドを定義することでシグナルハンドラを > 定義する機能があり、例えば以下のような書き方が出来ます。 > > button = Gtk::Button.new("Test") > def button.clicked(b) > puts "clicked" > end > > ただ、シグナル名は既存のメソッド名とかぶっていることが多いこともあり、 > 混乱をまねくので、個人的には廃止した方が良いのではないかと思っています。 > > この機能を現在使っているプログラムってありますか? あれ?これって前に議論しましたね。廃止したのかと思ってました。 Undocumentな機能ですしサンプルも無いはずですので使われていないでしょう。 この際、削除しちゃってくださいませ。 -- .:% Masao Mutoh<mu...@hi...> |
From: Masao M. <mu...@hi...> - 2006-05-27 14:32:47
|
むとうです。 On Sat, 27 May 2006 21:58:03 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > 酒井です。 > > From: Masao Mutoh <mu...@hi...> > Date: Sat, 27 May 2006 21:31:06 +0900 > > > むとうです。 > > > > > On Sat, 27 May 2006 16:13:31 +0900 (JST) > > Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > > > > そうですね。 > > > Containerの直接の子Widgetに関しては不要になります。 > > > 間接的な子孫に関してはまだダメですが。 > > > > rbgtkcontainer.cでmark時にgtk_container_forall呼んで > > マークするというのはようやく理解したのですが、 > > ↓これって、サブクラスにも有効なんでしたっけ。 > > VALUE gContainer = G_DEF_CLASS2(GTK_TYPE_CONTAINER, > > "Container", mGtk, cont_mark, NULL); > > サブクラスにも有効になるようRuby/GLib2側を変更してあります。 なるほど。 ちなみにこれに関して、どのファイルのどの辺りを見れば良いか教えて いただけませんか?ちょっとわからなくて・・・。 それから、rbgtkcontainer.cの中のcont_mark, cont_mark_callbackに それぞれデバッグ文を入れて、以下を実行したところ、デバック文が表示されなか ったのですがそういうもの(このタイミングではcont_markは呼ばれない)なのでしょうか。 Gtk::Window.newを呼んだときは、rbgtkcontainer.cのcont_mark が動く、という理解でいいですか?ってここを誤解してるのかな。 GC.startが呼ばれたタイミング? require 'gtk2' Gtk.init def test Gtk::Window.new end loop { test GC.start } -- .:% Masao Mutoh<mu...@hi...> |
From: Masahiro S. ()
<sa...@to...> - 2006-05-27 13:42:53
|
酒井です。 現在のRuby/GLib2には特異メソッドを定義することでシグナルハンドラを 定義する機能があり、例えば以下のような書き方が出来ます。 button = Gtk::Button.new("Test") def button.clicked(b) puts "clicked" end ただ、シグナル名は既存のメソッド名とかぶっていることが多いこともあり、 混乱をまねくので、個人的には廃止した方が良いのではないかと思っています。 この機能を現在使っているプログラムってありますか? -- 酒井 政裕 / Masahiro Sakai |