From: Kouhei S. <ko...@co...> - 2005-07-30 15:59:24
|
須藤です。 In <E1D...@sc...> "[ruby-gnome2-cvs] CVS: ruby-gnome2/gtk/src rbgtkdrag.c,1.20,1.21 rbgtkitemfactory.c,1.21,1.22 rbgtksizegroup.c,1.5,1.6" on Sat, 30 Jul 2005 03:24:59 -0700, Masao Mutoh <mu...@us...> wrote: > * src/rbgtkitemfactory.c: Fix segfault on amd64. > Index: rbgtkitemfactory.c > =================================================================== > RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/gtk/src/rbgtkitemfactory.c,v > retrieving revision 1.21 > retrieving revision 1.22 > diff -u -d -r1.21 -r1.22 > --- rbgtkitemfactory.c 17 Jun 2004 22:07:31 -0000 1.21 > +++ rbgtkitemfactory.c 30 Jul 2005 10:24:57 -0000 1.22 > @@ -112,11 +115,13 @@ > } > > static void > -items_exec_callback_wrap(callback_data, action, widget) > - VALUE callback_data, action; > +items_exec_callback_wrap(callback_data, action_id, widget) > + VALUE callback_data, action_id; > GtkWidget* widget; > { > VALUE iter, data; > + VALUE action = rb_hash_aref(action_table, UINT2NUM(action_id)); > + > iter = RARRAY(action)->ptr[0]; > data = RARRAY(action)->ptr[1]; > if (!NIL_P(iter)) { 別に検証したわけでもなんでもなくて,字面だけ見た感じなんです が, VALUE action_id なのに UINT2NUM(action_id) っておかしくないですか? どっちかというと guint action_id という感じがするんですが,こういうときって, > @@ -19,6 +19,9 @@ > #define RVAL2WIDGET(w) (GTK_WIDGET(RVAL2GOBJ(w))) > #define RVAL2ACCEL(a) (GTK_ACCEL_GROUP(RVAL2GOBJ(a))) > > +static VALUE action_table; > +static guint action_id = 0; > + > static VALUE > ifact_initialize(self, type, path, accel) > VALUE self; の方が優先されるんでしたっけ? |