[ruby-dev:48234] Re: [ruby-trunk - Bug #9859] [Open] An object with 6 instance variables causes SEGV

From: SASADA Koichi <ko1@...>
Date: 2014-05-23 23:00:09 UTC
List: ruby-dev #48234
(2014/05/24 4:33), [email protected] wrote:
> 気がついたのですが、以下のようにすると SEGV します。

ちょっと追ってみたのですが、

variable.c の
> REALLOC_N(ROBJECT(obj)->as.heap.ivptr, VALUE, newsize);

で xrealloc() が成功後、GC 発生して、mark 関数(mark_childrenの
T_OBJECT)において、xrealloc によって解放された古いバッファを参照してい
るため、であるようです。

どっかのタイミングで xrealloc でも GC.stress による強制 GC がされるよう
になったと思いますが、xrealloc が成功後、こんなふうに GC が走ると死んで
しまうので、xrealloc 成功時での GC.stress による強制 GC はダメなんじゃな
いでしょうか。

(元の議論の場所を思い出せない)

-- 
// SASADA Koichi at atdot dot net

In This Thread

Prev Next