投稿者 mattn | 10月 7, 2010

windows版のvimでif_rubyが落ちる件。

twitterで報告したが、たぶん ex_docmand.c が扱ってる buf_T のサイズと if_ruby.c が扱ってる buf_T のサイズが違うんじゃないだろうか。

Windows版のvimで起動直後に :help して :ruby p VIM::Buffer[1] したら死ねる。 #vim http://twitter.com/mattn_jp/status/26639866932

でも手法は python のバッファリファレンス手法と同じなので ruby が影響しているような気がする。 #vim #ruby http://twitter.com/mattn_jp/status/26639939448

そして何より解せないのが、ex_docmd.c(2656) から if_ruby.c(486) にジャンプした際に curbuf->b_ruby_ref が壊れるという変な挙動。意味分からん。アライメントとかずれてるんかなー。 #vim #ruby http://twitter.com/mattn_jp/status/26640073312

ruby/ruby.h や i386-msvcrt/ruby/config.h でいっぱい型宣言しているので、唯一 ruby.h を include している if_ruby.c をコンパイルする際に、変なコンパイルオプションが付いているか、もしくは undef/define なんかで再宣言された型のおかげで構造体メンバ b_ruby_ref のオフセットがずれてるんだと思う。

詳しくは明日見る。

 


コメントする

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

%s に接続中

カテゴリー

フォロー

Get every new post delivered to your Inbox.