Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/src/hotspot/share/gc/g1/g1BiasedArray.cpp
40957 views
1
/*
2
* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*
23
*/
24
25
#include "precompiled.hpp"
26
#include "gc/g1/g1BiasedArray.hpp"
27
#include "memory/padded.inline.hpp"
28
29
G1BiasedMappedArrayBase::G1BiasedMappedArrayBase() :
30
_alloc_base(NULL),
31
_base(NULL),
32
_length(0),
33
_biased_base(NULL),
34
_bias(0),
35
_shift_by(0) { }
36
37
G1BiasedMappedArrayBase::~G1BiasedMappedArrayBase() {
38
FreeHeap(_alloc_base);
39
}
40
41
// Allocate a new array, generic version.
42
address G1BiasedMappedArrayBase::create_new_base_array(size_t length, size_t elem_size) {
43
assert(length > 0, "just checking");
44
assert(elem_size > 0, "just checking");
45
return PaddedPrimitiveArray<u_char, mtGC>::create(length * elem_size, &_alloc_base);
46
}
47
48
#ifndef PRODUCT
49
void G1BiasedMappedArrayBase::verify_index(idx_t index) const {
50
guarantee(_base != NULL, "Array not initialized");
51
guarantee(index < length(), "Index out of bounds index: " SIZE_FORMAT " length: " SIZE_FORMAT, index, length());
52
}
53
54
void G1BiasedMappedArrayBase::verify_biased_index(idx_t biased_index) const {
55
guarantee(_biased_base != NULL, "Array not initialized");
56
guarantee(biased_index >= bias() && biased_index < (bias() + length()),
57
"Biased index out of bounds, index: " SIZE_FORMAT " bias: " SIZE_FORMAT " length: " SIZE_FORMAT,
58
biased_index, bias(), length());
59
}
60
61
void G1BiasedMappedArrayBase::verify_biased_index_inclusive_end(idx_t biased_index) const {
62
guarantee(_biased_base != NULL, "Array not initialized");
63
guarantee(biased_index >= bias() && biased_index <= (bias() + length()),
64
"Biased index out of inclusive bounds, index: " SIZE_FORMAT " bias: " SIZE_FORMAT " length: " SIZE_FORMAT,
65
biased_index, bias(), length());
66
}
67
68
#endif
69
70