From: Masahiro S. ()
<sa...@to...> - 2003-10-22 17:11:36
|
さかいです。 From: Masao Mutoh <mu...@hi...> Subject: Re: [ruby-gnome2-devel-ja] Re: [ruby-gnome2-devel-ja] Ruby/GTK2チュートリアル Date: Wed, 22 Oct 2003 22:18:13 +0900 > むとうです。 > > ここでRVAL2GTYPEを使うのはまずいです。 > > # nilが渡ってきたりしたときに引数からGTypeを決定出来ないので > > nilが渡ってきたらG_TYPE_NONEになるから大丈夫かと思ってたのですが...。 > 違いましたっけ? > _register_fundamental_klass_to_gtype()ってこういうときのために > 使うモノかと思ってたのですが...。 G_TYPE_NONEはVALUE_TYPEではないので、 GValueに値を格納するのには使えなくて、 こういう場合にはまずいです。 オブジェクトのクラスによらずにGValueのGTypeが決定可能な場合は、 そっちを使う方が望ましいと思います。 > > たしかにこの変更で Segmentation Fault しなくなったんですが、 > > 何でなのか私にはサッパリわからないので、少し説明してもらえませんか? > > arg->query.param_types[i]の指す値が微妙におかしかったです。 > #本当に期待するGType + 1みたいな。 あー、なるほど。 G_SIGNAL_TYPE_STATIC_SCOPEがここで効いてくるのか。 G_SIGNAL_TYPE_STATIC_SCOPE については良くわかってないんですが、 添付したような感じにすればよいのかな…… > > それと、↓の変更って全然意味がないような…… > > あー、これは他と揃えるという意味で。 > とにかく他に正常に動作してるモノと一つずつ合わせていったんです。 > GTypeが原因って気づくまでスゲー時間かかったんですよ(^^;)。 お手数をおかけしました。 -- 酒井 政裕 / Masahiro Sakai |