From: nobu.nakada@... Date: 2001-03-31T21:17:16+09:00 Subject: [ruby-dev:12711] Re: Was: [rubyist:0454] Re: to_str なかだです。 At Sat, 31 Mar 2001 20:20:30 +0900, Kenichi Komiya wrote: > char *str = rb_str2cstr(obj, 0); > rb_gc(); > printf("%s", str); > > rb_str2cstr 内部で呼ばれた to_str がスタック以外から参照されない文 > 字列を返すと、そのオブジェクトはどこからもマークされないのではない > かという事なんですが。そうならないように to_str が実装されていると > 期待して良いのでしょうか? スタック上のオブジェクトはマークされるので、obj が保持されて いる限りは大丈夫です。ただし、rb_str2cstr()の後で obj が全く使 われていないと最適化されて obj が消えてしまうことがあるので、 volatile をつけておくなりしないといけません。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦