summaryrefslogtreecommitdiff
path: root/meta-pkgs/ruby-gnome2
diff options
context:
space:
mode:
authorobache <obache>2012-01-06 13:34:50 +0000
committerobache <obache>2012-01-06 13:34:50 +0000
commit97266d726be8b1bed4aaee5722e8e87305cdae2b (patch)
treebc7cb18e128d79b9429c85efb573e71e8985068b /meta-pkgs/ruby-gnome2
parentdb42049430176545971935355b005d4cf74de466 (diff)
downloadpkgsrc-97266d726be8b1bed4aaee5722e8e87305cdae2b.tar.gz
Apply patches to fix SEGV by GC on Ruby 1.9 for Ruby/GLib2.
Bump PKGREVISION.
Diffstat (limited to 'meta-pkgs/ruby-gnome2')
-rw-r--r--meta-pkgs/ruby-gnome2/distinfo4
-rw-r--r--meta-pkgs/ruby-gnome2/patches/patch-glib2_ext_glib2_rbgobj__closure.c39
2 files changed, 41 insertions, 2 deletions
diff --git a/meta-pkgs/ruby-gnome2/distinfo b/meta-pkgs/ruby-gnome2/distinfo
index 7f7d1ae5b39..34d49f6aaac 100644
--- a/meta-pkgs/ruby-gnome2/distinfo
+++ b/meta-pkgs/ruby-gnome2/distinfo
@@ -1,6 +1,6 @@
-$NetBSD: distinfo,v 1.24 2011/10/03 14:19:43 obache Exp $
+$NetBSD: distinfo,v 1.25 2012/01/06 13:34:50 obache Exp $
SHA1 (ruby-gnome2-all-1.0.3.tar.gz) = 2a280760e411e443e4e617ca5345a3301fbd609d
RMD160 (ruby-gnome2-all-1.0.3.tar.gz) = bac4a901b3c09f548ced80c2a1cfbea482dc0ead
Size (ruby-gnome2-all-1.0.3.tar.gz) = 1141565 bytes
-SHA1 (patch-vte_ext_vte_depend) = 291fd3d31ec17342fafdc001abe828551eb398a1
+SHA1 (patch-glib2_ext_glib2_rbgobj__closure.c) = ee99d5f3e4ed67bc1965368da0aa314d1fd2cf57
diff --git a/meta-pkgs/ruby-gnome2/patches/patch-glib2_ext_glib2_rbgobj__closure.c b/meta-pkgs/ruby-gnome2/patches/patch-glib2_ext_glib2_rbgobj__closure.c
new file mode 100644
index 00000000000..a42e221c7d5
--- /dev/null
+++ b/meta-pkgs/ruby-gnome2/patches/patch-glib2_ext_glib2_rbgobj__closure.c
@@ -0,0 +1,39 @@
+$NetBSD: patch-glib2_ext_glib2_rbgobj__closure.c,v 1.1 2012/01/06 13:34:50 obache Exp $
+
+* fix SEGV by GC on Ruby 1.9.
+ https://github.com/ruby-gnome2/ruby-gnome2/commit/b5ca012f55017dff95546d331aa87576432fbc32
+ https://github.com/ruby-gnome2/ruby-gnome2/commit/7c712c51181edc73d419007a31064321bd14c929
+
+--- glib2/ext/glib2/rbgobj_closure.c.orig 2011-09-18 02:48:35.000000000 +0000
++++ glib2/ext/glib2/rbgobj_closure.c
+@@ -148,8 +148,7 @@ rclosure_unref(GRClosure *rclosure)
+ g_list_free(rclosure->objects);
+ rclosure->objects = NULL;
+ if (!NIL_P(rclosure->rb_holder)) {
+- RDATA(rclosure->rb_holder)->dmark = NULL;
+- RDATA(rclosure->rb_holder)->dfree = NULL;
++ DATA_PTR(rclosure->rb_holder) = NULL;
+ rclosure->rb_holder = Qnil;
+ }
+ }
+@@ -178,13 +177,18 @@ rclosure_invalidate(gpointer data, GClos
+ static void
+ gr_closure_holder_mark(GRClosure *rclosure)
+ {
+- rb_gc_mark(rclosure->callback);
+- rb_gc_mark(rclosure->extra_args);
++ if (rclosure) {
++ rb_gc_mark(rclosure->callback);
++ rb_gc_mark(rclosure->extra_args);
++ }
+ }
+
+ static void
+ gr_closure_holder_free(GRClosure *rclosure)
+ {
++ if (!rclosure)
++ return;
++
+ if (rclosure->count > 0) {
+ rclosure->count = 1;
+