8238999: Remove MemRegion custom new/delete operator overloads
Reviewed-by: kbarrett, jiangli, iklam
This commit is contained in:
parent
301a2e19c3
commit
28c630046e
@ -261,20 +261,15 @@ void G1CMMarkStack::set_empty() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
G1CMRootMemRegions::G1CMRootMemRegions(uint const max_regions) :
|
G1CMRootMemRegions::G1CMRootMemRegions(uint const max_regions) :
|
||||||
_root_regions(NULL),
|
_root_regions(MemRegion::create_array(max_regions, mtGC)),
|
||||||
_max_regions(max_regions),
|
_max_regions(max_regions),
|
||||||
_num_root_regions(0),
|
_num_root_regions(0),
|
||||||
_claimed_root_regions(0),
|
_claimed_root_regions(0),
|
||||||
_scan_in_progress(false),
|
_scan_in_progress(false),
|
||||||
_should_abort(false) {
|
_should_abort(false) { }
|
||||||
_root_regions = new MemRegion[_max_regions];
|
|
||||||
if (_root_regions == NULL) {
|
|
||||||
vm_exit_during_initialization("Could not allocate root MemRegion set.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
G1CMRootMemRegions::~G1CMRootMemRegions() {
|
G1CMRootMemRegions::~G1CMRootMemRegions() {
|
||||||
delete[] _root_regions;
|
FREE_C_HEAP_ARRAY(MemRegion, _root_regions);
|
||||||
}
|
}
|
||||||
|
|
||||||
void G1CMRootMemRegions::reset() {
|
void G1CMRootMemRegions::reset() {
|
||||||
|
@ -51,30 +51,19 @@ CardTable::CardTable(MemRegion whole_heap, bool conc_scan) :
|
|||||||
_byte_map(NULL),
|
_byte_map(NULL),
|
||||||
_byte_map_base(NULL),
|
_byte_map_base(NULL),
|
||||||
_cur_covered_regions(0),
|
_cur_covered_regions(0),
|
||||||
_covered(NULL),
|
_covered(MemRegion::create_array(_max_covered_regions, mtGC)),
|
||||||
_committed(NULL),
|
_committed(MemRegion::create_array(_max_covered_regions, mtGC)),
|
||||||
_guard_region()
|
_guard_region()
|
||||||
{
|
{
|
||||||
assert((uintptr_t(_whole_heap.start()) & (card_size - 1)) == 0, "heap must start at card boundary");
|
assert((uintptr_t(_whole_heap.start()) & (card_size - 1)) == 0, "heap must start at card boundary");
|
||||||
assert((uintptr_t(_whole_heap.end()) & (card_size - 1)) == 0, "heap must end at card boundary");
|
assert((uintptr_t(_whole_heap.end()) & (card_size - 1)) == 0, "heap must end at card boundary");
|
||||||
|
|
||||||
assert(card_size <= 512, "card_size must be less than 512"); // why?
|
assert(card_size <= 512, "card_size must be less than 512"); // why?
|
||||||
|
|
||||||
_covered = new MemRegion[_max_covered_regions];
|
|
||||||
if (_covered == NULL) {
|
|
||||||
vm_exit_during_initialization("Could not allocate card table covered region set.");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CardTable::~CardTable() {
|
CardTable::~CardTable() {
|
||||||
if (_covered) {
|
FREE_C_HEAP_ARRAY(MemRegion, _covered);
|
||||||
delete[] _covered;
|
FREE_C_HEAP_ARRAY(MemRegion, _committed);
|
||||||
_covered = NULL;
|
|
||||||
}
|
|
||||||
if (_committed) {
|
|
||||||
delete[] _committed;
|
|
||||||
_committed = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CardTable::initialize() {
|
void CardTable::initialize() {
|
||||||
@ -87,10 +76,6 @@ void CardTable::initialize() {
|
|||||||
HeapWord* high_bound = _whole_heap.end();
|
HeapWord* high_bound = _whole_heap.end();
|
||||||
|
|
||||||
_cur_covered_regions = 0;
|
_cur_covered_regions = 0;
|
||||||
_committed = new MemRegion[_max_covered_regions];
|
|
||||||
if (_committed == NULL) {
|
|
||||||
vm_exit_during_initialization("Could not allocate card table committed region set.");
|
|
||||||
}
|
|
||||||
|
|
||||||
const size_t rs_align = _page_size == (size_t) os::vm_page_size() ? 0 :
|
const size_t rs_align = _page_size == (size_t) os::vm_page_size() ? 0 :
|
||||||
MAX2(_page_size, (size_t) os::vm_allocation_granularity());
|
MAX2(_page_size, (size_t) os::vm_allocation_granularity());
|
||||||
|
@ -1747,7 +1747,7 @@ void FileMapInfo::map_heap_regions() {
|
|||||||
|
|
||||||
bool FileMapInfo::map_heap_data(MemRegion **heap_mem, int first,
|
bool FileMapInfo::map_heap_data(MemRegion **heap_mem, int first,
|
||||||
int max, int* num, bool is_open_archive) {
|
int max, int* num, bool is_open_archive) {
|
||||||
MemRegion * regions = new MemRegion[max];
|
MemRegion* regions = MemRegion::create_array(max, mtInternal);
|
||||||
FileMapRegion* si;
|
FileMapRegion* si;
|
||||||
int region_num = 0;
|
int region_num = 0;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -102,19 +102,10 @@ MemRegion MemRegion::minus(const MemRegion mr2) const {
|
|||||||
return MemRegion();
|
return MemRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
void* MemRegion::operator new(size_t size) throw() {
|
MemRegion* MemRegion::create_array(uint length, MEMFLAGS flags) {
|
||||||
return (address)AllocateHeap(size, mtGC, CURRENT_PC,
|
MemRegion* result = NEW_C_HEAP_ARRAY(MemRegion, length, flags);
|
||||||
AllocFailStrategy::RETURN_NULL);
|
for (uint i = 0; i < length; i++) {
|
||||||
}
|
::new (&result[i]) MemRegion();
|
||||||
|
}
|
||||||
void* MemRegion::operator new [](size_t size) throw() {
|
return result;
|
||||||
return (address)AllocateHeap(size, mtGC, CURRENT_PC,
|
|
||||||
AllocFailStrategy::RETURN_NULL);
|
|
||||||
}
|
|
||||||
void MemRegion::operator delete(void* p) {
|
|
||||||
FreeHeap(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MemRegion::operator delete [](void* p) {
|
|
||||||
FreeHeap(p);
|
|
||||||
}
|
}
|
||||||
|
@ -92,10 +92,9 @@ public:
|
|||||||
size_t word_size() const { return _word_size; }
|
size_t word_size() const { return _word_size; }
|
||||||
|
|
||||||
bool is_empty() const { return word_size() == 0; }
|
bool is_empty() const { return word_size() == 0; }
|
||||||
void* operator new(size_t size) throw();
|
|
||||||
void* operator new [](size_t size) throw();
|
// Creates and initializes an array of MemRegions of the given length.
|
||||||
void operator delete(void* p);
|
static MemRegion* create_array(uint length, MEMFLAGS flags);
|
||||||
void operator delete [](void* p);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// For iteration over MemRegion's.
|
// For iteration over MemRegion's.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user