Fix compilation issue

Fix compilation problems

Fix fastdebug compilation issues - cast_to_oop
This commit is contained in:
Vladimir Dvorak
2021-05-15 10:31:28 +02:00
committed by Vitaly Provodin
parent 97e5abd8a1
commit b34b4e9ce2
9 changed files with 39 additions and 39 deletions

View File

@@ -183,18 +183,18 @@ size_t G1FullGCCompactTask::G1CompactRegionClosureDcevm::apply(oop obj) {
Klass* new_version = obj->klass()->new_version();
if (new_version->update_information() == NULL) {
Copy::aligned_conjoint_words(obj_addr, destination, size);
oop(destination)->set_klass(new_version);
cast_to_oop(destination)->set_klass(new_version);
} else {
DcevmSharedGC::update_fields(obj, oop(destination));
DcevmSharedGC::update_fields(obj, cast_to_oop(destination));
}
oop(destination)->init_mark();
assert(oop(destination)->klass() != NULL, "should have a class");
cast_to_oop(destination)->init_mark();
assert(cast_to_oop(destination)->klass() != NULL, "should have a class");
return size;
}
Copy::aligned_conjoint_words(obj_addr, destination, size);
oop(destination)->init_mark();
assert(oop(destination)->klass() != NULL, "should have a class");
cast_to_oop(destination)->init_mark();
assert(cast_to_oop(destination)->klass() != NULL, "should have a class");
return size;
}

View File

@@ -171,7 +171,7 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
// Store a forwarding pointer if the object should be moved.
if (cast_from_oop<HeapWord*>(object) != _compaction_top || force_forward) {
object->forward_to(oop(_compaction_top));
object->forward_to(cast_to_oop(_compaction_top));
} else {
if (object->forwardee() != NULL) {
// Object should not move but mark-word is used so it looks like the
@@ -208,17 +208,17 @@ void G1FullGCCompactionPoint::forward_rescued() {
for (;i<rescued_oops()->length(); i++) {
HeapWord* q = rescued_oops()->at(i);
size_t size = oop(q)->size();
size_t size = cast_to_oop(q)->size();
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
if (cast_to_oop(q)->klass()->new_version() != NULL) {
// assert(size != new_size, "instances without changed size have to be updated prior to GC run");
size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
}
if (forward_compact_top(size) == NULL) {
break;
}
forward_dcevm(oop(q), size, true);
forward_dcevm(cast_to_oop(q), size, true);
}
_last_rescued_oop = i;
}

View File

@@ -297,7 +297,7 @@ size_t G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::apply(oop object)
HeapWord* compact_top = _cp->forward_compact_top(forward_size);
if (compact_top == NULL || must_rescue(object, oop(compact_top))) {
if (compact_top == NULL || must_rescue(object, cast_to_oop(compact_top))) {
_cp->rescued_oops()->append(cast_from_oop<HeapWord*>(object));
} else {
_cp->forward_dcevm(object, forward_size, (size != forward_size));
@@ -308,7 +308,7 @@ size_t G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::apply(oop object)
bool G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::must_rescue(oop old_obj, oop new_obj) {
// Only redefined objects can have the need to be rescued.
if (oop(old_obj)->klass()->new_version() == NULL) {
if (old_obj->klass()->new_version() == NULL) {
return false;
}

View File

@@ -46,7 +46,7 @@ void DcevmSharedGC::copy_rescued_objects_back(GrowableArray<HeapWord*>* rescued_
if (rescued_oops != NULL) {
for (int i=from; i < to; i++) {
HeapWord* rescued_ptr = rescued_oops->at(i);
oop rescued_obj = (oop) rescued_ptr;
oop rescued_obj = cast_to_oop(rescued_ptr);
int size = rescued_obj->size();
oop new_obj = rescued_obj->forwardee();
@@ -75,7 +75,7 @@ void DcevmSharedGC::clear_rescued_objects_resource(GrowableArray<HeapWord*>* res
if (rescued_oops != NULL) {
for (int i=0; i < rescued_oops->length(); i++) {
HeapWord* rescued_ptr = rescued_oops->at(i);
int size = ((oop) rescued_ptr)->size();
int size = cast_to_oop(rescued_ptr)->size();
FREE_RESOURCE_ARRAY(HeapWord, rescued_ptr, size);
}
rescued_oops->clear();
@@ -114,7 +114,7 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
if ((cast_from_oop<HeapWord*>(q) >= cast_from_oop<HeapWord*>(new_location) && cast_from_oop<HeapWord*>(q) < cast_from_oop<HeapWord*>(new_location) + new_size) ||
(cast_from_oop<HeapWord*>(new_location) >= cast_from_oop<HeapWord*>(q) && cast_from_oop<HeapWord*>(new_location) < cast_from_oop<HeapWord*>(q) + size)) {
tmp = NEW_RESOURCE_ARRAY(HeapWord, size);
q = (oop) tmp;
q = cast_to_oop(tmp);
Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(tmp_obj), cast_from_oop<HeapWord*>(q), size);
}
}

View File

@@ -475,7 +475,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
int new_size = old_obj->size_given_klass(oop(old_obj)->klass()->new_version());
int original_size = old_obj->size();
Generation* tenured_gen = GenCollectedHeap::heap()->old_gen();
bool old_in_tenured = tenured_gen->is_in_reserved(old_obj);
bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
@@ -513,9 +513,9 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
}
HeapWord* CompactibleSpace::rescue(HeapWord* old_obj) {
assert(must_rescue(oop(old_obj), oop(old_obj)->forwardee()), "do not call otherwise");
assert(must_rescue(cast_to_oop(old_obj), cast_to_oop(old_obj)->forwardee()), "do not call otherwise");
int size = oop(old_obj)->size();
int size = cast_to_oop(old_obj)->size();
HeapWord* rescued_obj = NEW_RESOURCE_ARRAY(HeapWord, size);
Copy::aligned_disjoint_words(old_obj, rescued_obj, size);
@@ -803,16 +803,16 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
size_t forward_size = size;
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
if (cast_to_oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
size_t new_size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
// assert(size != new_size, "instances without changed size have to be updated prior to GC run");
forward_size = new_size;
}
compact_top = forward_compact_top(forward_size, cp, compact_top);
if (must_rescue(oop(q), oop(compact_top))) {
if (must_rescue(cast_to_oop(q), cast_to_oop(compact_top))) {
if (MarkSweep::_rescued_oops == NULL) {
MarkSweep::_rescued_oops = new GrowableArray<HeapWord*>(128);
}
@@ -820,7 +820,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
return compact_top;
}
return forward(oop(q), forward_size, cp, compact_top, force_forward);
return forward(cast_to_oop(q), forward_size, cp, compact_top, force_forward);
}
// Compute the forwarding addresses for the objects that need to be rescued.
@@ -830,17 +830,17 @@ HeapWord* CompactibleSpace::forward_rescued(CompactPoint* cp, HeapWord* compact_
for (int i=0; i<MarkSweep::_rescued_oops->length(); i++) {
HeapWord* q = MarkSweep::_rescued_oops->at(i);
/* size_t size = oop(q)->size(); changing this for cms for perm gen */
/* size_t size = cast_to_oop(q)->size(); changing this for cms for perm gen */
size_t size = block_size(q);
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
if (cast_to_oop(q)->klass()->new_version() != NULL) {
size_t new_size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
// assert(size != new_size, "instances without changed size have to be updated prior to GC run");
size = new_size;
}
compact_top = cp->space->forward(oop(q), size, cp, compact_top, true);
compact_top = cp->space->forward(cast_to_oop(q), size, cp, compact_top, true);
assert(compact_top <= end(), "must not write over end of space!");
}
MarkSweep::_rescued_oops->clear();

View File

@@ -351,7 +351,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
size_t size = space->obj_size(cur_obj);
HeapWord* compaction_top = cast_from_oop<HeapWord*>(cast_to_oop(cur_obj)->forwardee());
if (redefinition_run && space->must_rescue(oop(cur_obj), oop(cur_obj)->forwardee())) {
if (redefinition_run && space->must_rescue(cast_to_oop(cur_obj), cast_to_oop(cur_obj)->forwardee())) {
space->rescue(cur_obj);
debug_only(Copy::fill_to_words(cur_obj, size, 0));
cur_obj += size;
@@ -363,16 +363,16 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
// copy object and reinit its mark
assert(redefinition_run || cur_obj != compaction_top, "everything in this pass should be moving");
if (redefinition_run && oop(cur_obj)->klass()->new_version() != NULL) {
Klass* new_version = oop(cur_obj)->klass()->new_version();
if (redefinition_run && cast_to_oop(cur_obj)->klass()->new_version() != NULL) {
Klass* new_version = cast_to_oop(cur_obj)->klass()->new_version();
if (new_version->update_information() == NULL) {
Copy::aligned_conjoint_words(cur_obj, compaction_top, size);
oop(compaction_top)->set_klass(new_version);
cast_to_oop(compaction_top)->set_klass(new_version);
} else {
DcevmSharedGC::update_fields(oop(cur_obj), oop(compaction_top));
DcevmSharedGC::update_fields(cast_to_oop(cur_obj), cast_to_oop(compaction_top));
}
oop(compaction_top)->init_mark();
assert(oop(compaction_top)->klass() != NULL, "should have a class");
cast_to_oop(compaction_top)->init_mark();
assert(cast_to_oop(compaction_top)->klass() != NULL, "should have a class");
debug_only(prev_obj = cur_obj);
cur_obj += size;

View File

@@ -556,8 +556,8 @@ void LinkResolver::check_method_accessability(Klass* ref_klass,
// We'll check for the method name first, as that's most likely
// to be false (so we'll short-circuit out of these tests).
if (sel_method->name() == vmSymbols::clone_name() &&
( !AllowEnhancedClassRedefinition && sel_klass == vmClasses::Object_klass() ||
AllowEnhancedClassRedefinition && sel_klass->newest_version() == vmClasses::Object_klass()->newest_version()) &&
( (!AllowEnhancedClassRedefinition && sel_klass == vmClasses::Object_klass()) ||
(AllowEnhancedClassRedefinition && sel_klass->newest_version() == vmClasses::Object_klass()->newest_version()) ) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");

View File

@@ -978,7 +978,7 @@ bool InstanceKlass::link_class_impl(TRAPS) {
set_init_state(linked);
}
// (DCEVM) Must check for old version in order to prevent infinite loops.
if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL /* JVMTI deadlock otherwise */) {
if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL /* JVMTI deadlock otherwise */)) {
JvmtiExport::post_class_prepare(THREAD, this);
}
}

View File

@@ -439,7 +439,7 @@ public:
int size = o->size();
if (_tmp_obj_size < size) {
_tmp_obj_size = size;
_tmp_obj = (oop)resource_allocate_bytes(size * HeapWordSize);
_tmp_obj = cast_to_oop(resource_allocate_bytes(size * HeapWordSize));
}
Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(o), cast_from_oop<HeapWord*>(_tmp_obj), size);
}
@@ -708,7 +708,7 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
InstanceKlass* cur = _new_classes->at(i);
if ((cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/"))
&& cur->name()->index_of_at(0, "$$") == -1) { // skip dynamic proxies
&& cur->name()->index_of_at(0, "$$", (int) strlen("$$")) == -1) { // skip dynamic proxies
if (cur == vmClasses::ClassLoader_klass()) {
// ClassLoader.addClass method is cached in Universe, we must redefine