In article <87vev0hxu5.fsf / m17n.org>,
  Tanaka Akira <akr / m17n.org> writes:

> +            p = (RVALUE*)((VALUE)p + sizeof(RVALUE) - ((VALUE)p % sizeof(RVALUE)));

Oops.  The original pointer should be keeped to call free.
struct heaps_slot needs one more fiedlds for it.
-- 
Tanaka Akira