I'm not familiar with the ruby internals; does `xmalloc` memory get magically released when you `rb_raise`?