やすしです。

まとまった時間が取れたので、余計なお世話 patch 第1弾です(ぉ

classごとに fileを分けてみました。それにともなって‥

1) 以下の variablesは staticを外して global.hで externしました。

extern ID id_gtkdata;
extern ID id_relatives;
extern ID id_call;

extern VALUE warn_handler;
extern VALUE mesg_handler;
extern VALUE print_handler

2) 分ける必要がなさそうな物まで gtk+に合わせて分けてしまいました‥(^^;

[hv].*\.cな物‥‥‥。

3) init.c global.c rbgtkobject.c rbgtkmain.c rbgtkwindow.cが、まだぐちゃ
ぐちゃな気がする‥。

4) compile timeの増加 (^^;;;;

plain 0.23:           class-per-file
real    4m23.781s     real    7m43.045s
user    3m34.630s     user    6m19.490s
sys     0m29.090s     sys     0m57.720s

ほぼ、倍‥‥‥‥‥(汗

5) extconf.rb内に $source_filesを追加。 $objs と Makefileの dependancyは
この変数と collect, eachを使って生成。(新しい fileを src/ に加えても
extconf.rbの変更は必要ないはず‥)
# winでも動くとは思うけど‥、確認してません。

6) Init_gtk_*を parentに呼ばせる様に変更。つまり、Init_gtk_widget()は
Init_gtk_object() 内部で呼ばれ、Init_gtk_item()は Init_gtk_bin()で呼ばれ
る。

7) functionの移動により、staticが付いたものや外れた物、どこから呼ばれて
いるか分からない物(^^; など‥。(grep FIXME:

このくらいかな‥‥。

http://kafka.salem.mass.edu:80/%7Eyashi/ruby/gtk-class-per-file.patch.bz2
--
                yashi