From: Masao M. <mu...@hi...> - 2003-10-22 13:20:36
|
むとうです。 On Wed, 22 Oct 2003 00:42:01 +0900 (JST) Masahiro Sakai (酒井政裕) <sa...@to...> wrote: > さかいです。 > > 返事が遅くなってすいません。 いえいえ、いろいろお疲れのようで(^^;)。 > | Index: rbgobj_signal.c > | =================================================================== > | RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobj_signal.c,v > | retrieving revision 1.39 > | retrieving revision 1.40 > | diff -u -d -r1.39 -r1.40 > | --- rbgobj_signal.c 23 Sep 2003 05:23:02 -0000 1.39 > | +++ rbgobj_signal.c 14 Oct 2003 13:30:24 -0000 1.40 > | @@ -302,9 +302,11 @@ > | { > | GValue* params = arg->instance_and_params->values + 1; > | int i; > | + VALUE val; > | for (i = 0; i < arg->query.n_params; i++){ > | - g_value_init(params + i, arg->query.param_types[i]); > | - rbgobj_rvalue_to_gvalue(rb_ary_entry(arg->args, i), params + i); > | + val = rb_ary_entry(arg->args, i); > | + g_value_init(params + i, RVAL2GTYPE(val)); > | + rbgobj_rvalue_to_gvalue(val, params + i); > | } > | } > > ここでRVAL2GTYPEを使うのはまずいです。 > # nilが渡ってきたりしたときに引数からGTypeを決定出来ないので nilが渡ってきたらG_TYPE_NONEになるから大丈夫かと思ってたのですが...。 違いましたっけ? _register_fundamental_klass_to_gtype()ってこういうときのために 使うモノかと思ってたのですが...。 > たしかにこの変更で Segmentation Fault しなくなったんですが、 > 何でなのか私にはサッパリわからないので、少し説明してもらえませんか? arg->query.param_types[i]の指す値が微妙におかしかったです。 #本当に期待するGType + 1みたいな。 > それと、↓の変更って全然意味がないような…… あー、これは他と揃えるという意味で。 とにかく他に正常に動作してるモノと一つずつ合わせていったんです。 GTypeが原因って気づくまでスゲー時間かかったんですよ(^^;)。 ではでは。 -- .:% Masao Mutoh<mu...@hi...> |