まつもと ゆきひろです

In message "[ruby-ext:01334] Re: Q about reference to another object"
    on 00/10/12, Yasushi Shoji <yashi / yashi.com> writes:

|[ruby-ext:00533]の場合、objectが global variableからだけ参照されてるため
|に GCの(というより markの)対象にならず、回収されてしまう事が原因ですが
|(ですよね? ^^;)、その他に注意する事はありますか?

global variableや構造体からの参照は(明示的に mark しない限り)
回収されてしまいます。あと、ごくまれにひっかかるのは

  VALUE str = rb_str_new(...);
  char *s;

  s = STR2CSTR(str)

として内部のポインタを取り出した後、変数strに触らないと最適
化でstrへの参照がなくなってしまう(のでタイミングによってGCで
回収される)から、sの値が無効になるというややこしいバグです。

                                まつもと ゆきひろ /:|)