ruby/ruby — pull request #108 by funny-falcon (2012-03-24 23:02:32+00:00)
Title: Simplify gc.c structures

1. Move immutable fields from `struct heaps_slot` and `struct sorted_heaps_slot` into `struct heaps_header`
One exception is `limit` field, but it starts to be mutable just before freeing a heaps_header, so that it is not big issue.
2. Embed bitmap into `struct heaps_slot`
3. Change `free_unused_heaps` to `free_unused_heap`, so that it will not be called on every GC round, but only when page should be freed.
While `free_unused_heaps` does not consume much time (it is invisible in profiler), but regular application has no need in calling this function every time.