< 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 : [mq]: 8173764-rev-tschatzl

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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.

@@ -76,13 +76,14 @@
 
 G1BlockOffsetTablePart::G1BlockOffsetTablePart(G1BlockOffsetTable* array, G1ContiguousSpace* gsp) :
   _bot(array),
   _space(gsp),
   _next_offset_threshold(NULL),
-  _next_offset_index(0),
-  _object_can_span(false)
-{ }
+  _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) {
 

@@ -364,10 +365,14 @@
     }
   }
 }
 
 #ifndef PRODUCT
+void G1BlockOffsetTablePart::set_object_can_span(bool can_span) {
+  _object_can_span = can_span;
+}
+
 void
 G1BlockOffsetTablePart::print_on(outputStream* out) {
   size_t from_index = _bot->index_for(_space->bottom());
   size_t to_index = _bot->index_for(_space->end());
   out->print_cr(">> BOT for area [" PTR_FORMAT "," PTR_FORMAT ") "

@@ -418,9 +423,5 @@
   alloc_block(_space->bottom(), obj_top);
   if (fill_size > 0) {
     alloc_block(obj_top, fill_size);
   }
 }
-
-void G1BlockOffsetTablePart::set_continues_humongous(bool is_humongous) {
-  _object_can_span = is_humongous;
-}
< prev index next >