void * ruby_xrealloc(void *ptr, long size)
引数と返り値の意味は realloc() と同じ。ただしメモリ割り当てに失敗したときは GC を行いそれでもだめなときは NoMemoryError を raise する。つまりこの関数が返り値を返したときは常に割り当ては成功している。