From: Yasushi Shoji <yashi / yashi.com>
Subject: [ruby-ext:00599] Re: Ruby/GTK SNAPSHOT-19991129
Date: Mon, 29 Nov 1999 03:41:36 -0500

> これ以上は、わからない‥‥。 

もうちょっとだけ、Gtk+の sourceをおっかけてみました。
node->row.dataは、node->row.destoryが TRUEだと Gtkの内部で消されるみたい
なので FALSEの時だけ、rb_gc_mark()で markする様にしてみました。以下、
patchです。

# Gtk+の素人が見ただけなので、これで正しいかどうかまではわかりません。
--
           yashi

--- rbgtkctree.c 1999/11/17 15:14:23 1.1.1.1 +++ rbgtkctree.c 1999/11/29 09:22:00 @@ -6,8 +6,10 @@ ctree_node_mark(node) GtkCTreeNode *node; { - if (GTK_CTREE_ROW(node) && GTK_CTREE_ROW(node)->row.data) + if (GTK_CTREE_ROW(node) && GTK_CTREE_ROW(node)->row.data + && ! GTK_CTREE_ROW(node)->row.destroy) { rb_gc_mark(GTK_CTREE_ROW(node)->row.data); + } }