From: Minero Aoki <aamine / dp.u-netsurf.ne.jp>
Subject: [ruby-ext:00664] Re: (gtk) testgtk/ctree
Date: Sat, 04 Dec 1999 00:17:03 +0900

> あ、確かに。
> 同じデータだけじゃなくて、上書きする場合は全部だめですね。

あ、そっか、ぜんぶだめですね(^^;

> # そもそも、Gtk+側でポインタをクリアしてくれれば
> # こんなことは問題にならないんでは

まったくです。

# *_refを使ってるところと使ってないところがあるのはなぜ? < Gtk+

で、これだけじゃゴミなので、Gtk::CTree#insert_nodeへのパッチです。
columns数と、第3引数である arrayの数がちがうと、segfaultする事があるみた
いです。CListだと raiseさせてるみたですが(ちがうかも)短かい分は省略と考
えて 0を入れています。

# 0.22から取った patchではないので、offsetがちがうかも〜
--
            yashi

--- rbgtkctree.c 1999/12/03 13:15:52 1.2 +++ rbgtkctree.c 1999/12/03 15:43:49 @@ -110,7 +110,7 @@ VALUE is_leaf, expanded; { GtkCTreeNode *c_parent, *c_sibling, *result; - int i, len; + int i, len, nr_cols; char **c_texts; c_parent = get_ctree_node(parent); @@ -118,11 +118,15 @@ Check_Type(texts, T_ARRAY); len = RARRAY(texts)->len; - c_texts = ALLOCA_N(char*, len); + nr_cols = GTK_CLIST(get_widget(self))->columns; + c_texts = ALLOCA_N(char*, nr_cols); for (i=0; i<len; i++) { VALUE text = RARRAY(texts)->ptr[i]; c_texts[i] = NIL_P(text)?0:STR2CSTR(text); } + for (i; i<nr_cols; i++) { + c_texts[i] = 0; + } result = gtk_ctree_insert_node(GTK_CTREE(get_widget(self)), c_parent, c_sibling, c_texts,