[#37762] tcltklibの作りかた — Mitsuo Igarashi <mitsu5@...>
mitsu5 です。
8 messages
2003/06/07
[#37774] Ruby/zlibのインストール方法はどのようにするのですか? — "igusa" <igusa@...>
いぐさです。
6 messages
2003/06/09
[#37801] 動的に生成したクラスメソッドのundef — Ryuichiro Hara <r@...>
動的に生成したメソッドを除く方法を知りたく質問します。
6 messages
2003/06/19
[#37814] Re: Oniguruma and PHP — kkosako@...
> スラッシュドットでも話題になっていましたが、Onigurumaを
1 message
2003/06/23
[#37815] 配列の使い方 — Kouji Miyauchi <koji.miyauchi@...>
宮内と申します。
9 messages
2003/06/23
[#37830] reference from nested class to a constant in a module included by the parent class — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
6 messages
2003/06/27
[#37838] Raccのインストールについて (MacOS X) — "Ken'ichiro Nakatani" <kenzo@...>
はじめまして。中谷と申します。
8 messages
2003/06/27
[#37839] Re: Raccのインストールについて (MacOS X)
— Ogino Junya <ogino@...>
2003/06/28
荻野ともうします。
[ruby-list:37750] Re: rb_ary_push
From:
nobu.nakada@...
Date:
2003-06-04 13:13:51 UTC
List:
ruby-list #37750
なかだです。
At Wed, 4 Jun 2003 20:22:32 +0900,
EMOTO Masahiko wrote:
> プログラム中で配列の大きさ(サンプルではN、M)が小さい時は
> 動作するのですが、大きくすると落ちてしまいます。
スタック上のGCから保護される範囲から、aryとary2が外れているのだ
と思います。
実際のコードや最適化の具合によって条件は変わりますが、一般的に
ruby_init()を呼ぶ関数と同じかそれよりも(コールグラフで)上の関数
では、VALUEを使うのは危険です。rb_ary_new()以降を別関数に分ける
とうまくいくかも知れません。
あるいは、Init_stack()をより上位のアドレスで呼び出すとか。
int
main(int argc, char **argv)
{
int i,j;
VALUE ary,ary2;
ruby_init();
Init_stack((VALUE*)&argc); /* <---- ここ */
ruby_init_loadpath();
ary = rb_ary_new();
for(i=0;i<N;i++){
ary2 = rb_ary_new();
for(j=0;j<M;j++){
rb_ary_push(ary2,rb_float_new((double )i));
rb_ary_push(ary,ary2);
}
}
}
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦