--- old/src/share/vm/gc/g1/dirtyCardQueue.cpp 2017-04-16 00:12:27.444990616 -0400 +++ new/src/share/vm/gc/g1/dirtyCardQueue.cpp 2017-04-16 00:12:27.308983692 -0400 @@ -157,9 +157,8 @@ if (cl == NULL) return true; bool result = true; void** buf = BufferNode::make_buffer_from_node(node); - size_t limit = DirtyCardQueue::byte_index_to_index(buffer_size()); - size_t i = DirtyCardQueue::byte_index_to_index(node->index()); - for ( ; i < limit; ++i) { + size_t i = node->index(); + for (size_t limit = buffer_size(); i < limit; ++i) { jbyte* card_ptr = static_cast(buf[i]); assert(card_ptr != NULL, "invariant"); if (!cl->do_card_ptr(card_ptr, worker_i)) { @@ -168,9 +167,8 @@ } } if (consume) { - size_t new_index = DirtyCardQueue::index_to_byte_index(i); - assert(new_index <= buffer_size(), "invariant"); - node->set_index(new_index); + assert(i <= buffer_size(), "invariant"); + node->set_index(i); } return result; }