Path: blob/master/src/hotspot/share/gc/g1/g1BiasedArray.cpp
40957 views
/*1* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*22*/2324#include "precompiled.hpp"25#include "gc/g1/g1BiasedArray.hpp"26#include "memory/padded.inline.hpp"2728G1BiasedMappedArrayBase::G1BiasedMappedArrayBase() :29_alloc_base(NULL),30_base(NULL),31_length(0),32_biased_base(NULL),33_bias(0),34_shift_by(0) { }3536G1BiasedMappedArrayBase::~G1BiasedMappedArrayBase() {37FreeHeap(_alloc_base);38}3940// Allocate a new array, generic version.41address G1BiasedMappedArrayBase::create_new_base_array(size_t length, size_t elem_size) {42assert(length > 0, "just checking");43assert(elem_size > 0, "just checking");44return PaddedPrimitiveArray<u_char, mtGC>::create(length * elem_size, &_alloc_base);45}4647#ifndef PRODUCT48void G1BiasedMappedArrayBase::verify_index(idx_t index) const {49guarantee(_base != NULL, "Array not initialized");50guarantee(index < length(), "Index out of bounds index: " SIZE_FORMAT " length: " SIZE_FORMAT, index, length());51}5253void G1BiasedMappedArrayBase::verify_biased_index(idx_t biased_index) const {54guarantee(_biased_base != NULL, "Array not initialized");55guarantee(biased_index >= bias() && biased_index < (bias() + length()),56"Biased index out of bounds, index: " SIZE_FORMAT " bias: " SIZE_FORMAT " length: " SIZE_FORMAT,57biased_index, bias(), length());58}5960void G1BiasedMappedArrayBase::verify_biased_index_inclusive_end(idx_t biased_index) const {61guarantee(_biased_base != NULL, "Array not initialized");62guarantee(biased_index >= bias() && biased_index <= (bias() + length()),63"Biased index out of inclusive bounds, index: " SIZE_FORMAT " bias: " SIZE_FORMAT " length: " SIZE_FORMAT,64biased_index, bias(), length());65}6667#endif686970