< prev index next >
src/share/vm/gc/g1/g1BlockOffsetTable.hpp
Print this page
rev 12504 : 8173764: G1 BOT wrongly assumes that objects must always begin at the start of G1BlockOffsetTablePart
Reviewed-by:
rev 12505 : imported patch 8173764-rev-tschatzl
rev 12506 : [mq]: 8173764-rev-kbarret
*** 1,7 ****
/*
! * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 115,124 ****
--- 115,127 ----
private:
// allocation boundary at which offset array must be updated
HeapWord* _next_offset_threshold;
size_t _next_offset_index; // index corresponding to that boundary
+ // Indicates if an object can span into this G1BlockOffsetTablePart.
+ debug_only(bool _object_can_span;)
+
// This is the global BlockOffsetTable.
G1BlockOffsetTable* _bot;
// The space that owns this subregion.
G1ContiguousSpace* _space;
*** 222,231 ****
--- 225,235 ----
void alloc_block(HeapWord* blk, size_t size) {
alloc_block(blk, blk+size);
}
void set_for_starts_humongous(HeapWord* obj_top, size_t fill_size);
+ void set_object_can_span(bool can_span) NOT_DEBUG_RETURN;
void print_on(outputStream* out) PRODUCT_RETURN;
};
#endif // SHARE_VM_GC_G1_G1BLOCKOFFSETTABLE_HPP
< prev index next >