Skip to content
This repository has been archived by the owner on Aug 27, 2022. It is now read-only.
/ lanai Public archive

Commit

Permalink
8238999: Remove MemRegion custom new/delete operator overloads
Browse files Browse the repository at this point in the history
Reviewed-by: kbarrett, jiangli, iklam
  • Loading branch information
Thomas Schatzl committed Feb 18, 2020
1 parent 301a2e1 commit 28c6300
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 48 deletions.
11 changes: 3 additions & 8 deletions src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,20 +261,15 @@ void G1CMMarkStack::set_empty() {
}

G1CMRootMemRegions::G1CMRootMemRegions(uint const max_regions) :
_root_regions(NULL),
_root_regions(MemRegion::create_array(max_regions, mtGC)),
_max_regions(max_regions),
_num_root_regions(0),
_claimed_root_regions(0),
_scan_in_progress(false),
_should_abort(false) {
_root_regions = new MemRegion[_max_regions];
if (_root_regions == NULL) {
vm_exit_during_initialization("Could not allocate root MemRegion set.");
}
}
_should_abort(false) { }

G1CMRootMemRegions::~G1CMRootMemRegions() {
delete[] _root_regions;
FREE_C_HEAP_ARRAY(MemRegion, _root_regions);
}

void G1CMRootMemRegions::reset() {
Expand Down
23 changes: 4 additions & 19 deletions src/hotspot/share/gc/shared/cardTable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,30 +51,19 @@ CardTable::CardTable(MemRegion whole_heap, bool conc_scan) :
_byte_map(NULL),
_byte_map_base(NULL),
_cur_covered_regions(0),
_covered(NULL),
_committed(NULL),
_covered(MemRegion::create_array(_max_covered_regions, mtGC)),
_committed(MemRegion::create_array(_max_covered_regions, mtGC)),
_guard_region()
{
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(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() {
if (_covered) {
delete[] _covered;
_covered = NULL;
}
if (_committed) {
delete[] _committed;
_committed = NULL;
}
FREE_C_HEAP_ARRAY(MemRegion, _covered);
FREE_C_HEAP_ARRAY(MemRegion, _committed);
}

void CardTable::initialize() {
Expand All @@ -87,10 +76,6 @@ void CardTable::initialize() {
HeapWord* high_bound = _whole_heap.end();

_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 :
MAX2(_page_size, (size_t) os::vm_allocation_granularity());
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/share/memory/filemap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1747,7 +1747,7 @@ void FileMapInfo::map_heap_regions() {

bool FileMapInfo::map_heap_data(MemRegion **heap_mem, int first,
int max, int* num, bool is_open_archive) {
MemRegion * regions = new MemRegion[max];
MemRegion* regions = MemRegion::create_array(max, mtInternal);
FileMapRegion* si;
int region_num = 0;

Expand Down
23 changes: 7 additions & 16 deletions src/hotspot/share/memory/memRegion.cpp
Original file line number Diff line number Diff line change
@@ -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.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -102,19 +102,10 @@ MemRegion MemRegion::minus(const MemRegion mr2) const {
return MemRegion();
}

void* MemRegion::operator new(size_t size) throw() {
return (address)AllocateHeap(size, mtGC, CURRENT_PC,
AllocFailStrategy::RETURN_NULL);
}

void* MemRegion::operator new [](size_t size) throw() {
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);
MemRegion* MemRegion::create_array(uint length, MEMFLAGS flags) {
MemRegion* result = NEW_C_HEAP_ARRAY(MemRegion, length, flags);
for (uint i = 0; i < length; i++) {
::new (&result[i]) MemRegion();
}
return result;
}
7 changes: 3 additions & 4 deletions src/hotspot/share/memory/memRegion.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,9 @@ class MemRegion {
size_t word_size() const { return _word_size; }

bool is_empty() const { return word_size() == 0; }
void* operator new(size_t size) throw();
void* operator new [](size_t size) throw();
void operator delete(void* p);
void operator delete [](void* p);

// Creates and initializes an array of MemRegions of the given length.
static MemRegion* create_array(uint length, MEMFLAGS flags);
};

// For iteration over MemRegion's.
Expand Down

0 comments on commit 28c6300

Please sign in to comment.