よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

July 26, 2005 [おもひで]

[Ruby-GNOME2] 64bit環境では動かない?

うーむ、そうかもしれないけど、正直、64bit環境持ってないのでよくわからないッス。

誰か、デバッグ環境用に64bitマシンくれないかなぁ、タダで。ついでにMacOS Xも。って、そんなムシのイイ話ないか...。

ってか、持ってる人がパッチ作って送ってくれるのが一番なんだけどなぁ。

本日のツッコミ(全15件) [ツッコミを入れる]
kou (July 28, 2005 16:26)

あ,持ってますよ.
何を調べたらよいですか?

むとう (July 28, 2005 18:31)

マジっすか!?GnomeCanvasがダメみたいなんです〜。

http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-talk/149401?149231-149760

スクリチ/scritch (July 28, 2005 20:45)

私は今晩時間があったらMacOS Xの問題をもっと調べてみます。

むとう (July 28, 2005 23:17)

ありがとう!

kou (July 29, 2005 16:12)

CanvasSamplePrimitives#setup_curvesでSEGVるやつはこれで直ると思います.
http://pub.cozmixng.org/~kou/diff/rb-gnomecanvas-boxed-copy.diff

原因は,GBoxedCopyFuncはコピーしたオブジェクトを返してほしいのに,gnome_canvas_path_def_refは何も返さないからでした.

ついでに,これが,Gnome::CanvasPathDef#initializeの引数チェックを厳しくしたやつです.
http://pub.cozmixng.org/~kou/diff/rb-gnomecanvas-improve-arg-check.diff

kou (July 29, 2005 16:22)

で,もう一つ問題があるんですが,これで落ちます.

require 'gtk2'
Gtk.init
w = Gtk::Window.new
w.flags = Gtk::Widget::CAN_FOCUS
w.show_all
Gtk.main

kou (July 29, 2005 16:44)

これで直ります.
http://pub.cozmixng.org/~kou/diff/rb-gtk-fix-declaration.diff

64bit環境ではVALUE(unsigned long)と(宣言省略時にデフォルトで使われる)intのサイズが異なるので,宣言を忘れていた時にこんな問題が起こります.ということで,宣言のし忘れには注意しなければいけません.
と,この間,私がはまった時に思いました. ;D

ay (July 29, 2005 17:12)

関係があるかどうか、というか、切り分けもまだしてないんですが(おまけに便乗ぎみで申し分けないのですが)、64ビット環境について http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=319063 というレポートをもらっています。

むとう (July 30, 2005 00:35)

うー、お二方ともありがとうございます。助かります。

kouさん:
大変申し訳ないのですがayさんの方も見ていただくことは可能ですか?
あと、パッチはCVSに適用してくださいませ。

#リリース1週間遅らせようかしら...。

むとう (July 30, 2005 02:09)

gnome_canvas_path_def_ref()の戻り値がg_object_ref()と違うのってメチャクチャいやらしいですね...。ひょっとしてlibgnomecanvas2のバグ?

むとう (July 30, 2005 02:12)

ayさんの方ですが、これ、まさにkouさんのパッチで治りそうです。ちなみに、widget_unset_flagsの方も合ってないな...(^^;)。

むとう (July 30, 2005 02:17)

ってか、なんで今まで大丈夫だったんだろう....> gnome_canvas_path_def_ref()

ay (July 30, 2005 11:22)

情報感謝です。Ruby-GNOME2のメンテナに連絡してみます。

kou (July 30, 2005 12:26)

コミットしました.

HEADのlibgnomecanvas2はgnome_canvas_path_def_get_type()を提供しているので,将来的にはそっちを使うようにした方がよいかもしれません.

むとう (July 30, 2005 14:17)

ayさん:
debianのメンテナというとDafyddのことでしょうか。よろしくお願いします。

kouさん:
なるほど。まぁ、そちらの対応は次でも良いと思います。
コミットどうもです。


編集