HEAP_OBJ_LIMIT used sizeof(struct heaps_slot) while heap is currently allocated with struct heaps_header
HEAP_BITMAP_LIMIT were calculated from HEAP_OBJ_LIMIT/sizeof(uintptr_t) - one Byte for each object, not one Bit.

This issue was solved with changeset r34581.
Yura, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

gc.c (HEAP_OBJ_LIMIT, HEAP_BITMAP_LIMIT): HEAP_OBJ_LIMIT used
sizeof(struct heaps_slot) while heap is currently allocated
with struct heaps_header.
HEAP_BITMAP_LIMIT were calculated from
HEAP_OBJ_LIMIT/sizeof(uintptr_t) - one Byte for each object,
not one Bit. [Bug #6006]
patched by Sokolov Yura. https://github.com/ruby/ruby/pull/92

gc.c (HEAP_OBJ_LIMIT, HEAP_BITMAP_LIMIT): HEAP_OBJ_LIMIT used
sizeof(struct heaps_slot) while heap is currently allocated
with struct heaps_header.
HEAP_BITMAP_LIMIT were calculated from
HEAP_OBJ_LIMIT/sizeof(uintptr_t) - one Byte for each object,
not one Bit. [Bug #6006]
patched by Sokolov Yura. https://github.com/ruby/ruby/pull/92