Thank you for the trying the patch.
Nobu pointed out that the patch may cause memory leak.
I'll commit a revised version soon.


2011/7/25 Eric Wong <normalperson / yhbt.net>:
> sidenote: I didn't realize xmalloc() (via rb_unlink_method_entry) is
> safe/allowed inside bm_free(); but apparently it's only rb_new_obj()
> that's prevented inside GC.

Good point.  I was not aware of this.
Indeed, GC does not occur recursively even if vm_xmalloc is called
during GC.  But NoMemoryError may be raised from bm_free()...  It
will probably make the interpreter state inconsistent, so I guess
it is not possible to sanely continue the execution by rescue'ing
the exception.
But I have no solution about the case.  Frankly speaking, I think
we can do nothing if just few dozens byte allocation is failed.


2011/7/25 Motohiro KOSAKI <kosaki.motohiro / gmail.com>:
>> > With the patch, both trunk and ruby_1_9_3 run without SEGV. My hat's off to you for your exhausting job.
>>
>> Me too.  Thanks a lot.
>
> Me too. You are great.

Thanks for the compliment!

-- 
Yusuke Endoh <mame / tsg.ne.jp>