--- old/src/share/vm/ci/ciInstanceKlass.cpp 2015-10-14 13:53:50.351466597 +0200 +++ new/src/share/vm/ci/ciInstanceKlass.cpp 2015-10-14 13:53:50.243469208 +0200 @@ -28,6 +28,7 @@ #include "ci/ciInstanceKlass.hpp" #include "ci/ciUtilities.hpp" #include "classfile/systemDictionary.hpp" +#include "gc/shenandoah/brooksPointer.hpp" #include "memory/allocation.hpp" #include "memory/allocation.inline.hpp" #include "oops/oop.inline.hpp" @@ -179,12 +180,12 @@ // ciInstanceKlass* ciInstanceKlass::get_canonical_holder(int offset) { #ifdef ASSERT - if (!(offset >= 0 && offset < layout_helper())) { + if (!(offset >= 0 && offset < layout_helper() || (offset == BrooksPointer::BYTE_OFFSET && UseShenandoahGC))) { tty->print("*** get_canonical_holder(%d) on ", offset); this->print(); tty->print_cr(" ***"); }; - assert(offset >= 0 && offset < layout_helper(), "offset must be tame"); + assert(offset >= 0 && offset < layout_helper() || (offset == BrooksPointer::BYTE_OFFSET && UseShenandoahGC), "offset must be tame"); #endif if (offset < instanceOopDesc::base_offset_in_bytes()) {