< prev index next >

src/share/vm/gc/g1/g1BlockOffsetTable.cpp

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.
*** 77,87 **** G1BlockOffsetTablePart::G1BlockOffsetTablePart(G1BlockOffsetTable* array, G1ContiguousSpace* gsp) : _bot(array), _space(gsp), _next_offset_threshold(NULL), _next_offset_index(0) ! { } // The arguments follow the normal convention of denoting // a right-open interval: [start, end) void G1BlockOffsetTablePart:: set_remainder_to_point_to_start(HeapWord* start, HeapWord* end) { --- 77,89 ---- G1BlockOffsetTablePart::G1BlockOffsetTablePart(G1BlockOffsetTable* array, G1ContiguousSpace* gsp) : _bot(array), _space(gsp), _next_offset_threshold(NULL), _next_offset_index(0) ! { ! debug_only(_object_can_span = false;) ! } // The arguments follow the normal convention of denoting // a right-open interval: [start, end) void G1BlockOffsetTablePart:: set_remainder_to_point_to_start(HeapWord* start, HeapWord* end) {
*** 362,371 **** --- 364,379 ---- p2i(_space->bottom()), p2i(backskip_address)); } } } + #ifdef ASSERT + void G1BlockOffsetTablePart::set_object_can_span(bool can_span) { + _object_can_span = can_span; + } + #endif + #ifndef PRODUCT void G1BlockOffsetTablePart::print_on(outputStream* out) { size_t from_index = _bot->index_for(_space->bottom()); size_t to_index = _bot->index_for(_space->end());
< prev index next >