From: Masahiro S. <sa...@us...> - 2007-06-19 15:34:29
|
Update of /cvsroot/ruby-gnome2/ruby-gnome2/glib/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv6609/src Modified Files: rbgobj_closure.c Log Message: fixed a segfault which is caused by accessing freed GRClosure. Index: rbgobj_closure.c =================================================================== RCS file: /cvsroot/ruby-gnome2/ruby-gnome2/glib/src/rbgobj_closure.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- rbgobj_closure.c 13 Jun 2007 14:07:48 -0000 1.41 +++ rbgobj_closure.c 19 Jun 2007 15:34:23 -0000 1.42 @@ -236,6 +236,8 @@ } g_list_free(rclosure->objects); rclosure->objects = NULL; + RDATA(rclosure->rb_holder)->dmark = NULL; + RDATA(rclosure->rb_holder)->dfree = NULL; rclosure->rb_holder = Qnil; } } @@ -261,7 +263,6 @@ static void gr_closure_holder_free(GRClosure *rclosure) { - rclosure->rb_holder = Qnil; rclosure_invalidate(NULL, (GClosure*)rclosure); } |