[#45467] 文字列から配列への変換について — "西塔伸一郎" <omohideporoporo@...>
いつもお世話になっております。
7 messages
2008/09/04
[#45484] volatileの付け方 — 谷垣 宏一 <co01@...>
co01と申します。
14 messages
2008/09/11
[#45486] Re: volatileの付け方
— Nobuyoshi Nakada <nobu@...>
2008/09/11
なかだです。
[#45501] マルチパートフォームデータのescapeHTML — 宮崎 詠二 <eiji@...21.com>
最近rubyのcgiをはじめたばかりのeijiと申します。
7 messages
2008/09/16
[ruby-list:45498] Re: volatileの付け方
From:
Nobuyoshi Nakada <nobu@...>
Date:
2008-09-11 17:14:56 UTC
List:
ruby-list #45498
なかだです。
arton wrote in [ruby-list:45497]:
At Fri, 12 Sep 2008 01:37:54 +0900,
> したがって、rubikitchさんが書かれた方法を兼用して、
> volatile VALUE* pary = rb_ary_new...
VALUE ary = rb_ary_new(n);
VALUE *pary = RARRAY_PTR(ary);
/* ... */
RB_GC_GUARD(ary);
です。
あるいは
VALUE *pary = ALLOCA_N(VALUE, n);
> のようにすれば、スタック上(GCによって有効と判断される)のVALUE*に配列が
> 確保できるので安全です。ここで、volatileを付けないと最適化によっては、そ
> のコードの位置でスタックに積まれないのでGCされてしまう可能性があるのは、
> ご想像の通りです。
VALUE*がスタックやレジスタにあってもGCに対しては無意味です。また、
volatileがあっても末尾呼び出しの最適化などで消される可能性があります。
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦