Rubyについて Part 29
■ このスレッドは過去ログ倉庫に格納されています
0251デフォルトの名無しさん
2007/11/23(金) 14:39:20まさにその通りでした。変数の初期化がされてなく、-O0のときだけたまたま動いていただけでした。
ヒントありがとうございました。
今回はGCは絡んでなかったのでよかったのですが、そうなったらもうお手上げですね。
もうひとつ質問ですが、rb_ivar_set()では
VALUE obj = ...;
rb_ivar_set(obj, rb_intern("foo"), INT2FIX(123));
だとうまく行かずに
rb_ivar_set(obj, rb_intern("@foo"), INT2FIX(123));
だとうまくいったんですが、"@"は必ずつけないといけないのでしょうか。
Rubyのソースコードをみると、"@"はつけてないように見えます。
今書いてるコードでは、Rubyとは別のライブラリの中に
char *names[16];
というのがあって、これを使って
for (i = 0; i < 16; i++) {
rb_ivar_set(obj, rb_intern(names[i]), val);
}
としたいんですが、"@"をつけなきゃいけないとなるとちょっと面倒だなーと思ってるんですが、こんなときみなさんどうしてますか。
■ このスレッドは過去ログ倉庫に格納されています