--- a/src/hotspot/share/ci/ciEnv.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/ci/ciEnv.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -539,7 +539,7 @@
// Calculate accessibility the hard way.
if (!k->is_loaded()) {
is_accessible = false;
- } else if (!oopDesc::equals(k->loader(), accessor->loader()) &&
+ } else if (k->loader() != accessor->loader() &&
get_klass_by_name_impl(accessor, cpool, k->name(), true) == NULL) {
// Loaded only remotely. Not linked yet.
is_accessible = false;
@@ -590,7 +590,7 @@
index = cpool->object_to_cp_index(cache_index);
oop obj = cpool->resolved_references()->obj_at(cache_index);
if (obj != NULL) {
- if (oopDesc::equals(obj, Universe::the_null_sentinel())) {
+ if (obj == Universe::the_null_sentinel()) {
return ciConstant(T_OBJECT, get_object(NULL));
}
BasicType bt = T_OBJECT;
--- a/src/hotspot/share/ci/ciObjectFactory.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/ci/ciObjectFactory.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -250,7 +250,7 @@
// into the cache.
Handle keyHandle(Thread::current(), key);
ciObject* new_object = create_new_object(keyHandle());
- assert(oopDesc::equals(keyHandle(), new_object->get_oop()), "must be properly recorded");
+ assert(keyHandle() == new_object->get_oop(), "must be properly recorded");
init_ident_of(new_object);
assert(Universe::heap()->is_in(new_object->get_oop()), "must be");
@@ -469,8 +469,8 @@
for (int i=0; i<_unloaded_klasses->length(); i++) {
ciKlass* entry = _unloaded_klasses->at(i);
if (entry->name()->equals(name) &&
- oopDesc::equals(entry->loader(), loader) &&
- oopDesc::equals(entry->protection_domain(), domain)) {
+ entry->loader() == loader &&
+ entry->protection_domain() == domain) {
// We've found a match.
return entry;
}
--- a/src/hotspot/share/ci/ciObjectFactory.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/ci/ciObjectFactory.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -74,7 +74,7 @@
ciMetadata* create_new_metadata(Metadata* o);
static bool is_equal(NonPermObject* p, oop key) {
- return oopDesc::equals(p->object()->get_oop(), key);
+ return p->object()->get_oop() == key;
}
NonPermObject* &find_non_perm(oop key);
--- a/src/hotspot/share/classfile/classLoaderData.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/classLoaderData.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -232,7 +232,7 @@
VerifyContainsOopClosure(oop target) : _target(target), _found(false) {}
void do_oop(oop* p) {
- if (p != NULL && oopDesc::equals(NativeAccess<AS_NO_KEEPALIVE>::oop_load(p), _target)) {
+ if (p != NULL && NativeAccess<AS_NO_KEEPALIVE>::oop_load(p) == _target) {
_found = true;
}
}
@@ -433,7 +433,7 @@
// Just return if this dependency is to a class with the same or a parent
// class_loader.
- if (oopDesc::equals(from, to) || java_lang_ClassLoader::isAncestor(from, to)) {
+ if (from == to || java_lang_ClassLoader::isAncestor(from, to)) {
return; // this class loader is in the parent list, no need to add it.
}
}
--- a/src/hotspot/share/classfile/classLoaderStats.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/classLoaderStats.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -98,7 +98,7 @@
class ClassLoaderStatsClosure : public CLDClosure {
protected:
static bool oop_equals(oop const& s1, oop const& s2) {
- return oopDesc::equals(s1, s2);
+ return s1 == s2;
}
static unsigned oop_hash(oop const& s1) {
--- a/src/hotspot/share/classfile/dictionary.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/dictionary.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -153,13 +153,13 @@
// a Dictionary entry, which can be moved if the Dictionary is resized.
MutexLocker ml(ProtectionDomainSet_lock, Mutex::_no_safepoint_check_flag);
#ifdef ASSERT
- if (oopDesc::equals(protection_domain, instance_klass()->protection_domain())) {
+ if (protection_domain == instance_klass()->protection_domain()) {
// Ensure this doesn't show up in the pd_set (invariant)
bool in_pd_set = false;
for (ProtectionDomainEntry* current = pd_set();
current != NULL;
current = current->next()) {
- if (oopDesc::equals(current->object_no_keepalive(), protection_domain)) {
+ if (current->object_no_keepalive() == protection_domain) {
in_pd_set = true;
break;
}
@@ -171,7 +171,7 @@
}
#endif /* ASSERT */
- if (oopDesc::equals(protection_domain, instance_klass()->protection_domain())) {
+ if (protection_domain == instance_klass()->protection_domain()) {
// Succeeds trivially
return true;
}
@@ -179,7 +179,7 @@
for (ProtectionDomainEntry* current = pd_set();
current != NULL;
current = current->next()) {
- if (oopDesc::equals(current->object_no_keepalive(), protection_domain)) return true;
+ if (current->object_no_keepalive() == protection_domain) return true;
}
return false;
}
--- a/src/hotspot/share/classfile/javaClasses.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/javaClasses.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -878,7 +878,7 @@
} else {
assert(Universe::is_module_initialized() ||
(ModuleEntryTable::javabase_defined() &&
- (oopDesc::equals(module(), ModuleEntryTable::javabase_moduleEntry()->module()))),
+ (module() == ModuleEntryTable::javabase_moduleEntry()->module())),
"Incorrect java.lang.Module specification while creating mirror");
set_module(mirror(), module());
}
@@ -955,7 +955,7 @@
}
// set the classLoader field in the java_lang_Class instance
- assert(oopDesc::equals(class_loader(), k->class_loader()), "should be same");
+ assert(class_loader() == k->class_loader(), "should be same");
set_class_loader(mirror(), class_loader());
// Setup indirection from klass->mirror
@@ -1510,9 +1510,9 @@
// Note: create_basic_type_mirror above initializes ak to a non-null value.
type = ArrayKlass::cast(ak)->element_type();
} else {
- assert(oopDesc::equals(java_class, Universe::void_mirror()), "only valid non-array primitive");
+ assert(java_class == Universe::void_mirror(), "only valid non-array primitive");
}
- assert(oopDesc::equals(Universe::java_mirror(type), java_class), "must be consistent");
+ assert(Universe::java_mirror(type) == java_class, "must be consistent");
return type;
}
@@ -3712,14 +3712,14 @@
}
bool java_lang_invoke_MethodType::equals(oop mt1, oop mt2) {
- if (oopDesc::equals(mt1, mt2))
+ if (mt1 == mt2)
return true;
- if (!oopDesc::equals(rtype(mt1), rtype(mt2)))
+ if (rtype(mt1) != rtype(mt2))
return false;
if (ptype_count(mt1) != ptype_count(mt2))
return false;
for (int i = ptype_count(mt1) - 1; i >= 0; i--) {
- if (!oopDesc::equals(ptype(mt1, i), ptype(mt2, i)))
+ if (ptype(mt1, i) != ptype(mt2, i))
return false;
}
return true;
@@ -3933,7 +3933,7 @@
// This loop taken verbatim from ClassLoader.java:
do {
acl = parent(acl);
- if (oopDesc::equals(cl, acl)) {
+ if (cl == acl) {
return true;
}
assert(++loop_count > 0, "loop_count overflow");
@@ -3963,7 +3963,7 @@
oop cl = SystemDictionary::java_system_loader();
while(cl != NULL) {
- if (oopDesc::equals(cl, loader)) return true;
+ if (cl == loader) return true;
cl = parent(cl);
}
return false;
--- a/src/hotspot/share/classfile/javaClasses.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/javaClasses.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -52,7 +52,7 @@
// Accessors
bool java_lang_String::value_equals(typeArrayOop str_value1, typeArrayOop str_value2) {
- return (oopDesc::equals(str_value1, str_value2) ||
+ return ((str_value1 == str_value2) ||
(str_value1->length() == str_value2->length() &&
(!memcmp(str_value1->base(T_BYTE),
str_value2->base(T_BYTE),
--- a/src/hotspot/share/classfile/modules.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/modules.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -306,7 +306,7 @@
oop loader = java_lang_Module::loader(module_handle());
// Make sure loader is not the jdk.internal.reflect.DelegatingClassLoader.
- if (!oopDesc::equals(loader, java_lang_ClassLoader::non_reflection_class_loader(loader))) {
+ if (loader != java_lang_ClassLoader::non_reflection_class_loader(loader)) {
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
"Class loader is an invalid delegating class loader");
}
--- a/src/hotspot/share/classfile/protectionDomainCache.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/protectionDomainCache.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -160,7 +160,7 @@
ProtectionDomainCacheEntry* ProtectionDomainCacheTable::find_entry(int index, Handle protection_domain) {
assert_locked_or_safepoint(SystemDictionary_lock);
for (ProtectionDomainCacheEntry* e = bucket(index); e != NULL; e = e->next()) {
- if (oopDesc::equals(e->object_no_keepalive(), protection_domain())) {
+ if (e->object_no_keepalive() == protection_domain()) {
return e;
}
}
--- a/src/hotspot/share/classfile/systemDictionary.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/classfile/systemDictionary.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -177,7 +177,7 @@
return false;
}
return (class_loader->klass() == SystemDictionary::jdk_internal_loader_ClassLoaders_AppClassLoader_klass() ||
- oopDesc::equals(class_loader, _java_system_loader));
+ class_loader == _java_system_loader);
}
// Returns true if the passed class loader is the platform class loader.
@@ -393,7 +393,7 @@
if ((childk != NULL ) && (is_superclass) &&
((quicksuperk = childk->java_super()) != NULL) &&
((quicksuperk->name() == super_name) &&
- (oopDesc::equals(quicksuperk->class_loader(), class_loader())))) {
+ (quicksuperk->class_loader() == class_loader()))) {
return quicksuperk;
} else {
PlaceholderEntry* probe = placeholders()->get_entry(p_index, p_hash, child_name, loader_data);
@@ -542,7 +542,7 @@
bool calledholdinglock
= ObjectSynchronizer::current_thread_holds_lock((JavaThread*)THREAD, lockObject);
assert(calledholdinglock,"must hold lock for notify");
- assert((!oopDesc::equals(lockObject(), _system_loader_lock_obj) && !is_parallelCapable(lockObject)), "unexpected double_lock_wait");
+ assert((lockObject() != _system_loader_lock_obj && !is_parallelCapable(lockObject)), "unexpected double_lock_wait");
ObjectSynchronizer::notifyall(lockObject, THREAD);
intptr_t recursions = ObjectSynchronizer::complete_exit(lockObject, THREAD);
SystemDictionary_lock->wait();
@@ -850,7 +850,7 @@
// If everything was OK (no exceptions, no null return value), and
// class_loader is NOT the defining loader, do a little more bookkeeping.
if (!HAS_PENDING_EXCEPTION && k != NULL &&
- !oopDesc::equals(k->class_loader(), class_loader())) {
+ k->class_loader() != class_loader()) {
check_constraints(d_hash, k, class_loader, false, THREAD);
@@ -1003,7 +1003,7 @@
if (unsafe_anonymous_host != NULL) {
// Create a new CLD for an unsafe anonymous class, that uses the same class loader
// as the unsafe_anonymous_host
- guarantee(oopDesc::equals(unsafe_anonymous_host->class_loader(), class_loader()), "should be the same");
+ guarantee(unsafe_anonymous_host->class_loader() == class_loader(), "should be the same");
loader_data = ClassLoaderData::unsafe_anonymous_class_loader_data(class_loader);
} else {
loader_data = ClassLoaderData::class_loader_data(class_loader());
@@ -1729,7 +1729,7 @@
== ObjectSynchronizer::owner_other) {
// contention will likely happen, so increment the corresponding
// contention counter.
- if (oopDesc::equals(loader_lock(), _system_loader_lock_obj)) {
+ if (loader_lock() == _system_loader_lock_obj) {
ClassLoader::sync_systemLoaderLockContentionRate()->inc();
} else {
ClassLoader::sync_nonSystemLoaderLockContentionRate()->inc();
@@ -2150,7 +2150,7 @@
// cleared if revocation occurs too often for this type
// NOTE that we must only do this when the class is initally
// defined, not each time it is referenced from a new class loader
- if (oopDesc::equals(k->class_loader(), class_loader())) {
+ if (k->class_loader() == class_loader()) {
k->set_prototype_header(markWord::biased_locking_prototype());
}
}
@@ -2343,7 +2343,7 @@
Handle loader1, Handle loader2,
bool is_method, TRAPS) {
// Nothing to do if loaders are the same.
- if (oopDesc::equals(loader1(), loader2())) {
+ if (loader1() == loader2()) {
return NULL;
}
--- a/src/hotspot/share/code/dependencies.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/code/dependencies.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -1813,12 +1813,12 @@
if (changes == NULL) {
// Validate all CallSites
- if (!oopDesc::equals(java_lang_invoke_CallSite::target(call_site), method_handle))
+ if (java_lang_invoke_CallSite::target(call_site) != method_handle)
return call_site->klass(); // assertion failed
} else {
// Validate the given CallSite
- if (oopDesc::equals(call_site, changes->call_site()) && !oopDesc::equals(java_lang_invoke_CallSite::target(call_site), changes->method_handle())) {
- assert(!oopDesc::equals(method_handle, changes->method_handle()), "must be");
+ if (call_site == changes->call_site() && java_lang_invoke_CallSite::target(call_site) != changes->method_handle()) {
+ assert(method_handle != changes->method_handle(), "must be");
return call_site->klass(); // assertion failed
}
}
--- a/src/hotspot/share/compiler/compileBroker.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/compiler/compileBroker.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -316,7 +316,7 @@
// We only allow the last compiler thread of each type to get removed.
jobject last_compiler = c1 ? CompileBroker::compiler1_object(compiler_count - 1)
: CompileBroker::compiler2_object(compiler_count - 1);
- if (oopDesc::equals(ct->threadObj(), JNIHandles::resolve_non_null(last_compiler))) {
+ if (ct->threadObj() == JNIHandles::resolve_non_null(last_compiler)) {
if (do_it) {
assert_locked_or_safepoint(CompileThread_lock); // Update must be consistent.
compiler->set_num_compiler_threads(compiler_count - 1);
@@ -1687,7 +1687,7 @@
int compiler_number = 0;
bool found = false;
for (; compiler_number < count; compiler_number++) {
- if (oopDesc::equals(JNIHandles::resolve_non_null(compiler_objects[compiler_number]), compiler_obj)) {
+ if (JNIHandles::resolve_non_null(compiler_objects[compiler_number]) == compiler_obj) {
found = true;
break;
}
--- a/src/hotspot/share/gc/shared/barrierSet.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shared/barrierSet.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -144,10 +144,6 @@
virtual void make_parsable(JavaThread* thread) {}
-#ifdef CHECK_UNHANDLED_OOPS
- virtual bool oop_equals_operator_allowed() { return true; }
-#endif
-
public:
// Print a description of the memory for the barrier set
virtual void print_on(outputStream* st) const = 0;
@@ -318,10 +314,6 @@
static oop resolve(oop obj) {
return Raw::resolve(obj);
}
-
- static bool equals(oop o1, oop o2) {
- return Raw::equals(o1, o2);
- }
};
};
--- a/src/hotspot/share/gc/shared/collectedHeap.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shared/collectedHeap.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -174,7 +174,7 @@
}
bool CollectedHeap::is_oop(oop object) const {
- if (!check_obj_alignment(object)) {
+ if (!is_object_aligned(object)) {
return false;
}
@@ -344,7 +344,7 @@
#endif // PRODUCT
void CollectedHeap::check_oop_location(void* addr) const {
- assert(check_obj_alignment(addr), "address is not aligned");
+ assert(is_object_aligned(addr), "address is not aligned");
assert(_reserved.contains(addr), "address is not in reserved heap");
}
--- a/src/hotspot/share/gc/shared/referenceProcessor.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shared/referenceProcessor.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -282,7 +282,7 @@
// First _prev_next ref actually points into DiscoveredList (gross).
oop new_next;
- if (oopDesc::equals_raw(_next_discovered, _current_discovered)) {
+ if (_next_discovered == _current_discovered) {
// At the end of the list, we should make _prev point to itself.
// If _ref is the first ref, then _prev_next will be in the DiscoveredList,
// and _prev will be NULL.
@@ -472,7 +472,7 @@
ReferenceProcessor::clear_discovered_references(DiscoveredList& refs_list) {
oop obj = NULL;
oop next = refs_list.head();
- while (!oopDesc::equals_raw(next, obj)) {
+ while (next != obj) {
obj = next;
next = java_lang_ref_Reference::discovered(obj);
java_lang_ref_Reference::set_discovered_raw(obj, NULL);
@@ -744,7 +744,7 @@
ref_lists[to_idx].inc_length(refs_to_move);
// Remove the chain from the from list.
- if (oopDesc::equals_raw(move_tail, new_head)) {
+ if (move_tail == new_head) {
// We found the end of the from list.
ref_lists[from_idx].set_head(NULL);
} else {
--- a/src/hotspot/share/gc/shared/referenceProcessor.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shared/referenceProcessor.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -143,13 +143,13 @@
inline size_t removed() const { return _removed; }
inline void move_to_next() {
- if (oopDesc::equals_raw(_current_discovered, _next_discovered)) {
+ if (_current_discovered == _next_discovered) {
// End of the list.
_current_discovered = NULL;
} else {
_current_discovered = _next_discovered;
}
- assert(!oopDesc::equals_raw(_current_discovered, _first_seen), "cyclic ref_list found");
+ assert(_current_discovered != _first_seen, "cyclic ref_list found");
_processed++;
}
};
--- a/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shared/stringdedup/stringDedupTable.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -363,7 +363,7 @@
}
typeArrayOop existing_value = lookup_or_add(value, latin1, hash);
- if (oopDesc::equals_raw(existing_value, value)) {
+ if (existing_value == value) {
// Same value, already known
stat->inc_known();
return;
--- a/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahAsserts.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -142,7 +142,7 @@
if (level >= _safe_oop) {
oop fwd = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(obj);
msg.append("Forwardee:\n");
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
if (level >= _safe_oop_fwd) {
print_obj(msg, fwd);
} else {
@@ -157,7 +157,7 @@
if (level >= _safe_oop_fwd) {
oop fwd = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(obj);
oop fwd2 = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(fwd);
- if (!oopDesc::equals_raw(fwd, fwd2)) {
+ if (fwd != fwd2) {
msg.append("Second forwardee:\n");
print_obj_safe(msg, fwd2);
msg.append("\n");
@@ -203,7 +203,7 @@
oop fwd = oop(ShenandoahForwarding::get_forwardee_raw_unchecked(obj));
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
// When Full GC moves the objects, we cannot trust fwdptrs. If we got here, it means something
// tries fwdptr manipulation when Full GC is running. The only exception is using the fwdptr
// that still points to the object itself.
@@ -235,7 +235,7 @@
// Step 4. Check for multiple forwardings
oop fwd2 = oop(ShenandoahForwarding::get_forwardee_raw_unchecked(fwd));
- if (!oopDesc::equals_raw(fwd, fwd2)) {
+ if (fwd != fwd2) {
print_failure(_safe_all, obj, interior_loc, NULL, "Shenandoah assert_correct failed",
"Multiple forwardings",
file, line);
@@ -278,7 +278,7 @@
assert_correct(interior_loc, obj, file, line);
oop fwd = oop(ShenandoahForwarding::get_forwardee_raw_unchecked(obj));
- if (oopDesc::equals_raw(obj, fwd)) {
+ if (obj == fwd) {
print_failure(_safe_all, obj, interior_loc, NULL, "Shenandoah assert_forwarded failed",
"Object should be forwarded",
file, line);
@@ -289,7 +289,7 @@
assert_correct(interior_loc, obj, file, line);
oop fwd = oop(ShenandoahForwarding::get_forwardee_raw_unchecked(obj));
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
print_failure(_safe_all, obj, interior_loc, NULL, "Shenandoah assert_not_forwarded failed",
"Object should not be forwarded",
file, line);
--- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -238,7 +238,7 @@
shenandoah_assert_in_cset(NULL, obj);
oop fwd = resolve_forwarded_not_null(obj);
- if (oopDesc::equals_raw(obj, fwd)) {
+ if (obj == fwd) {
ShenandoahEvacOOMScope oom_evac_scope;
Thread* thread = Thread::current();
@@ -267,7 +267,7 @@
size_t count = 0;
while ((cur < r->top()) && ctx->is_marked(oop(cur)) && (count++ < max)) {
oop cur_oop = oop(cur);
- if (oopDesc::equals_raw(cur_oop, resolve_forwarded_not_null(cur_oop))) {
+ if (cur_oop == resolve_forwarded_not_null(cur_oop)) {
_heap->evacuate_object(cur_oop, thread);
}
cur = cur + cur_oop->size();
@@ -286,7 +286,7 @@
oop fwd = resolve_forwarded_not_null(obj);
if (evac_in_progress &&
_heap->in_collection_set(obj) &&
- oopDesc::equals_raw(obj, fwd)) {
+ obj == fwd) {
Thread *t = Thread::current();
if (t->is_GC_task_thread()) {
return _heap->evacuate_object(obj, t);
--- a/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -103,7 +103,7 @@
compare_value = expected;
res = Raw::oop_atomic_cmpxchg(new_value, addr, compare_value);
expected = res;
- } while ((! oopDesc::equals_raw(compare_value, expected)) && oopDesc::equals_raw(resolve_forwarded(compare_value), resolve_forwarded(expected)));
+ } while ((compare_value != expected) && (resolve_forwarded(compare_value) == resolve_forwarded(expected)));
if (res != NULL) {
return ShenandoahBarrierSet::barrier_set()->load_reference_barrier_not_null(res);
} else {
@@ -118,7 +118,7 @@
oop result = oop_atomic_cmpxchg_not_in_heap(new_value, addr, compare_value);
const bool keep_alive = (decorators & AS_NO_KEEPALIVE) == 0;
if (keep_alive && ShenandoahSATBBarrier && !CompressedOops::is_null(result) &&
- oopDesc::equals_raw(result, compare_value) &&
+ (result == compare_value) &&
ShenandoahHeap::heap()->is_concurrent_mark_in_progress()) {
ShenandoahBarrierSet::barrier_set()->enqueue(result);
}
@@ -307,7 +307,7 @@
case EVAC_BARRIER:
if (_heap->in_collection_set(obj)) {
oop forw = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (oopDesc::equals_raw(forw, obj)) {
+ if (forw == obj) {
forw = _heap->evacuate_object(forw, thread);
}
obj = forw;
--- a/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahClosures.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -92,7 +92,7 @@
if (_heap->in_collection_set(obj)) {
shenandoah_assert_marked(p, obj);
oop resolved = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (oopDesc::equals_raw(resolved, obj)) {
+ if (resolved == obj) {
resolved = _heap->evacuate_object(obj, _thread);
}
RawAccess<IS_NOT_NULL>::oop_store(p, resolved);
@@ -119,7 +119,7 @@
if (_heap->in_collection_set(obj)) {
shenandoah_assert_marked(p, obj);
oop resolved = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (oopDesc::equals_raw(resolved, obj)) {
+ if (resolved == obj) {
resolved = _heap->evacuate_object(obj, _thread);
}
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -113,11 +113,11 @@
oop heap_oop = CompressedOops::decode_not_null(o);
if (in_collection_set(heap_oop)) {
oop forwarded_oop = ShenandoahBarrierSet::resolve_forwarded_not_null(heap_oop);
- if (oopDesc::equals_raw(forwarded_oop, heap_oop)) {
+ if (forwarded_oop == heap_oop) {
forwarded_oop = evacuate_object(heap_oop, Thread::current());
}
oop prev = cas_oop(forwarded_oop, p, heap_oop);
- if (oopDesc::equals_raw(prev, heap_oop)) {
+ if (prev == heap_oop) {
return forwarded_oop;
} else {
return NULL;
@@ -146,7 +146,7 @@
if (in_collection_set(heap_oop)) {
oop forwarded_oop = ShenandoahBarrierSet::resolve_forwarded_not_null(heap_oop);
- if (oopDesc::equals_raw(forwarded_oop, heap_oop)) {
+ if (forwarded_oop == heap_oop) {
// E.g. during evacuation.
return forwarded_oop;
}
@@ -159,7 +159,7 @@
// reference be updated later.
oop witness = cas_oop(forwarded_oop, p, heap_oop);
- if (!oopDesc::equals_raw(witness, heap_oop)) {
+ if (witness != heap_oop) {
// CAS failed, someone had beat us to it. Normally, we would return the failure witness,
// because that would be the proper write of to-space object, enforced by strong barriers.
// However, there is a corner case with arraycopy. It can happen that a Java thread
@@ -279,7 +279,7 @@
// Try to install the new forwarding pointer.
oop copy_val = oop(copy);
oop result = ShenandoahForwarding::try_update_forwardee(p, copy_val);
- if (oopDesc::equals_raw(result, copy_val)) {
+ if (result == copy_val) {
// Successfully evacuated. Our copy is now the public one!
shenandoah_assert_correct(NULL, copy_val);
return copy_val;
--- a/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTaskqueue.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -141,11 +141,11 @@
public:
ObjArrayChunkedTask(oop o = NULL) {
- assert(oopDesc::equals_raw(decode_oop(encode_oop(o)), o), "oop can be encoded: " PTR_FORMAT, p2i(o));
+ assert(decode_oop(encode_oop(o)) == o, "oop can be encoded: " PTR_FORMAT, p2i(o));
_obj = encode_oop(o);
}
ObjArrayChunkedTask(oop o, int chunk, int pow) {
- assert(oopDesc::equals_raw(decode_oop(encode_oop(o)), o), "oop can be encoded: " PTR_FORMAT, p2i(o));
+ assert(decode_oop(encode_oop(o)) == o, "oop can be encoded: " PTR_FORMAT, p2i(o));
assert(decode_chunk(encode_chunk(chunk)) == chunk, "chunk can be encoded: %d", chunk);
assert(decode_pow(encode_pow(pow)) == pow, "pow can be encoded: %d", pow);
_obj = encode_oop(o) | encode_chunk(chunk) | encode_pow(pow);
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -672,7 +672,7 @@
if (!CompressedOops::is_null(o)) {
oop obj = CompressedOops::decode_not_null(o);
oop forw = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (!oopDesc::equals_raw(obj, forw)) {
+ if (obj != forw) {
RawAccess<IS_NOT_NULL>::oop_store(p, forw);
}
}
--- a/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahTraversalGC.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -42,14 +42,14 @@
oop obj = CompressedOops::decode_not_null(o);
if (DEGEN) {
oop forw = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (!oopDesc::equals_raw(obj, forw)) {
+ if (obj != forw) {
// Update reference.
RawAccess<IS_NOT_NULL>::oop_store(p, forw);
}
obj = forw;
} else if (_heap->in_collection_set(obj)) {
oop forw = ShenandoahBarrierSet::resolve_forwarded_not_null(obj);
- if (oopDesc::equals_raw(obj, forw)) {
+ if (obj == forw) {
forw = _heap->evacuate_object(obj, thread);
}
shenandoah_assert_forwarded_except(p, obj, _heap->cancelled_gc());
--- a/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -35,6 +35,7 @@
#include "memory/iterator.inline.hpp"
#include "memory/resourceArea.hpp"
#include "oops/compressedOops.inline.hpp"
+#include "utilities/align.hpp"
// Avoid name collision on verify_oop (defined in macroAssembler_arm.hpp)
#ifdef verify_oop
@@ -98,7 +99,7 @@
check(ShenandoahAsserts::_safe_unknown, obj, _heap->is_in(obj),
"oop must be in heap");
- check(ShenandoahAsserts::_safe_unknown, obj, check_obj_alignment(obj),
+ check(ShenandoahAsserts::_safe_unknown, obj, is_object_aligned(obj),
"oop must be aligned");
ShenandoahHeapRegion *obj_reg = _heap->heap_region_containing(obj);
@@ -153,12 +154,12 @@
ShenandoahHeapRegion* fwd_reg = NULL;
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
check(ShenandoahAsserts::_safe_oop, obj, _heap->is_in(fwd),
"Forwardee must be in heap");
check(ShenandoahAsserts::_safe_oop, obj, !CompressedOops::is_null(fwd),
"Forwardee is set");
- check(ShenandoahAsserts::_safe_oop, obj, check_obj_alignment(fwd),
+ check(ShenandoahAsserts::_safe_oop, obj, is_object_aligned(fwd),
"Forwardee must be aligned");
// Do this before touching fwd->size()
@@ -183,7 +184,7 @@
"Forwardee end should be within the region");
oop fwd2 = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(fwd);
- check(ShenandoahAsserts::_safe_oop, obj, oopDesc::equals_raw(fwd, fwd2),
+ check(ShenandoahAsserts::_safe_oop, obj, (fwd == fwd2),
"Double forwarding");
} else {
fwd_reg = obj_reg;
@@ -212,12 +213,12 @@
// skip
break;
case ShenandoahVerifier::_verify_forwarded_none: {
- check(ShenandoahAsserts::_safe_all, obj, oopDesc::equals_raw(obj, fwd),
+ check(ShenandoahAsserts::_safe_all, obj, (obj == fwd),
"Should not be forwarded");
break;
}
case ShenandoahVerifier::_verify_forwarded_allow: {
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
check(ShenandoahAsserts::_safe_all, obj, obj_reg != fwd_reg,
"Forwardee should be in another region");
}
@@ -237,7 +238,7 @@
break;
case ShenandoahVerifier::_verify_cset_forwarded:
if (_heap->in_collection_set(obj)) {
- check(ShenandoahAsserts::_safe_all, obj, !oopDesc::equals_raw(obj, fwd),
+ check(ShenandoahAsserts::_safe_all, obj, (obj != fwd),
"Object in collection set, should have forwardee");
}
break;
@@ -952,7 +953,7 @@
if (!CompressedOops::is_null(o)) {
oop obj = CompressedOops::decode_not_null(o);
oop fwd = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(obj);
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
ShenandoahAsserts::print_failure(ShenandoahAsserts::_safe_all, obj, p, NULL,
"Verify Roots", "Should not be forwarded", __FILE__, __LINE__);
}
@@ -984,7 +985,7 @@
}
oop fwd = (oop) ShenandoahForwarding::get_forwardee_raw_unchecked(obj);
- if (!oopDesc::equals_raw(obj, fwd)) {
+ if (obj != fwd) {
ShenandoahAsserts::print_failure(ShenandoahAsserts::_safe_all, obj, p, NULL,
"Verify Roots In To-Space", "Should not be forwarded", __FILE__, __LINE__);
}
--- a/src/hotspot/share/gc/z/zCollectedHeap.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/gc/z/zCollectedHeap.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -35,6 +35,7 @@
#include "gc/z/zUtils.inline.hpp"
#include "memory/universe.hpp"
#include "runtime/mutexLocker.hpp"
+#include "utilities/align.hpp"
ZCollectedHeap* ZCollectedHeap::heap() {
CollectedHeap* heap = Universe::heap();
@@ -369,7 +370,7 @@
}
void ZCollectedHeap::check_oop_location(void* addr) const {
- assert(check_obj_alignment(addr), "address is not aligned");
+ assert(is_object_aligned(addr), "address is not aligned");
const uintptr_t addr_int = reinterpret_cast<uintptr_t>(addr);
assert(addr_int >= ZAddressSpaceStart, "address is outside of the heap");
--- a/src/hotspot/share/interpreter/bytecodeInterpreter.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/interpreter/bytecodeInterpreter.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -2436,7 +2436,7 @@
handle_exception);
result = THREAD->vm_result();
}
- if (oopDesc::equals(result, Universe::the_null_sentinel()))
+ if (result == Universe::the_null_sentinel())
result = NULL;
VERIFY_OOP(result);
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -206,7 +206,7 @@
if (rindex >= 0) {
oop coop = m->constants()->resolved_references()->obj_at(rindex);
oop roop = (result == NULL ? Universe::the_null_sentinel() : result);
- assert(oopDesc::equals(roop, coop), "expected result for assembly code");
+ assert(roop == coop, "expected result for assembly code");
}
}
#endif
--- a/src/hotspot/share/jvmci/jvmciCompiler.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/jvmci/jvmciCompiler.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -123,7 +123,7 @@
if (excludeModules.not_null()) {
ModuleEntry* moduleEntry = method->method_holder()->module();
for (int i = 0; i < excludeModules->length(); i++) {
- if (oopDesc::equals(excludeModules->obj_at(i), moduleEntry->module())) {
+ if (excludeModules->obj_at(i) == moduleEntry->module()) {
return true;
}
}
--- a/src/hotspot/share/memory/heapShared.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/memory/heapShared.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -125,7 +125,7 @@
static bool _archive_heap_region_fixed;
static bool oop_equals(oop const& p1, oop const& p2) {
- return oopDesc::equals(p1, p2);
+ return p1 == p2;
}
static unsigned oop_hash(oop const& p);
--- a/src/hotspot/share/memory/heapShared.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/memory/heapShared.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -27,6 +27,7 @@
#include "oops/compressedOops.inline.hpp"
#include "memory/heapShared.hpp"
+#include "utilities/align.hpp"
#if INCLUDE_G1GC
#include "gc/g1/g1Allocator.inline.hpp"
#endif
@@ -40,7 +41,7 @@
inline oop HeapShared::decode_from_archive(narrowOop v) {
assert(!CompressedOops::is_null(v), "narrow oop value can never be zero");
oop result = (oop)(void*)((uintptr_t)_narrow_oop_base + ((uintptr_t)v << _narrow_oop_shift));
- assert(check_obj_alignment(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
+ assert(is_object_aligned(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
return result;
}
--- a/src/hotspot/share/memory/universe.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/memory/universe.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -571,13 +571,13 @@
// preallocated errors with backtrace have been consumed. Also need to avoid
// a potential loop which could happen if an out of memory occurs when attempting
// to allocate the backtrace.
- return ((!oopDesc::equals(throwable(), Universe::_out_of_memory_error_java_heap)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_metaspace)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_class_metaspace)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_array_size)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_gc_overhead_limit)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_realloc_objects)) &&
- (!oopDesc::equals(throwable(), Universe::_out_of_memory_error_retry)));
+ return ((throwable() != Universe::_out_of_memory_error_java_heap) &&
+ (throwable() != Universe::_out_of_memory_error_metaspace) &&
+ (throwable() != Universe::_out_of_memory_error_class_metaspace) &&
+ (throwable() != Universe::_out_of_memory_error_array_size) &&
+ (throwable() != Universe::_out_of_memory_error_gc_overhead_limit) &&
+ (throwable() != Universe::_out_of_memory_error_realloc_objects) &&
+ (throwable() != Universe::_out_of_memory_error_retry));
}
--- a/src/hotspot/share/oops/access.cpp Mon Sep 16 19:48:10 2019 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2018, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#include "precompiled.hpp"
-#include "oops/access.inline.hpp"
-#include "oops/accessDecorators.hpp"
-
-// This macro allows instantiating selected accesses to be usable from the
-// access.hpp file, to break dependencies to the access.inline.hpp file.
-#define INSTANTIATE_HPP_ACCESS(decorators, T, barrier_type) \
- template struct RuntimeDispatch<DecoratorFixup<decorators>::value, T, barrier_type>
-
-namespace AccessInternal {
- INSTANTIATE_HPP_ACCESS(DECORATORS_NONE, oop, BARRIER_EQUALS);
-}
--- a/src/hotspot/share/oops/access.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/access.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -58,7 +58,6 @@
// * arraycopy: Copy data from one heap array to another heap array. The ArrayAccess class has convenience functions for this.
// * clone: Clone the contents of an object to a newly allocated object.
// * resolve: Resolve a stable to-space invariant oop that is guaranteed not to relocate its payload until a subsequent thread transition.
-// * equals: Object equality, e.g. when different copies of the same objects are in use (from-space vs. to-space)
//
// == IMPLEMENTATION ==
// Each access goes through the following steps in a template pipeline.
@@ -275,11 +274,6 @@
verify_decorators<DECORATORS_NONE>();
return AccessInternal::resolve<decorators>(obj);
}
-
- static bool equals(oop o1, oop o2) {
- verify_decorators<AS_RAW>();
- return AccessInternal::equals<decorators>(o1, o2);
- }
};
// Helper for performing raw accesses (knows only of memory ordering
--- a/src/hotspot/share/oops/access.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/access.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -206,13 +206,6 @@
}
};
- template <class GCBarrierType, DecoratorSet decorators>
- struct PostRuntimeDispatch<GCBarrierType, BARRIER_EQUALS, decorators>: public AllStatic {
- static bool access_barrier(oop o1, oop o2) {
- return GCBarrierType::equals(o1, o2);
- }
- };
-
// Resolving accessors with barriers from the barrier set happens in two steps.
// 1. Expand paths with runtime-decorators, e.g. is UseCompressedOops on or off.
// 2. Expand paths for each BarrierSet available in the system.
@@ -367,13 +360,6 @@
_resolve_func = function;
return function(obj);
}
-
- template <DecoratorSet decorators, typename T>
- bool RuntimeDispatch<decorators, T, BARRIER_EQUALS>::equals_init(oop o1, oop o2) {
- func_t function = BarrierResolver<decorators, func_t, BARRIER_EQUALS>::resolve_barrier();
- _equals_func = function;
- return function(o1, o2);
- }
}
#endif // SHARE_OOPS_ACCESS_INLINE_HPP
--- a/src/hotspot/share/oops/accessBackend.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/accessBackend.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -64,8 +64,7 @@
BARRIER_ATOMIC_XCHG_AT,
BARRIER_ARRAYCOPY,
BARRIER_CLONE,
- BARRIER_RESOLVE,
- BARRIER_EQUALS
+ BARRIER_RESOLVE
};
template <DecoratorSet decorators, typename T>
@@ -116,7 +115,6 @@
size_t length);
typedef void (*clone_func_t)(oop src, oop dst, size_t size);
typedef oop (*resolve_func_t)(oop obj);
- typedef bool (*equals_func_t)(oop o1, oop o2);
};
template <DecoratorSet decorators>
@@ -144,7 +142,6 @@
ACCESS_GENERATE_ACCESS_FUNCTION(BARRIER_ARRAYCOPY, arraycopy_func_t);
ACCESS_GENERATE_ACCESS_FUNCTION(BARRIER_CLONE, clone_func_t);
ACCESS_GENERATE_ACCESS_FUNCTION(BARRIER_RESOLVE, resolve_func_t);
- ACCESS_GENERATE_ACCESS_FUNCTION(BARRIER_EQUALS, equals_func_t);
#undef ACCESS_GENERATE_ACCESS_FUNCTION
template <DecoratorSet decorators, typename T, BarrierType barrier_type>
@@ -410,8 +407,6 @@
static void clone(oop src, oop dst, size_t size);
static oop resolve(oop obj) { return obj; }
-
- static bool equals(oop o1, oop o2) { return (void*)o1 == (void*)o2; }
};
// Below is the implementation of the first 4 steps of the template pipeline:
@@ -605,18 +600,6 @@
}
};
- template <DecoratorSet decorators, typename T>
- struct RuntimeDispatch<decorators, T, BARRIER_EQUALS>: AllStatic {
- typedef typename AccessFunction<decorators, T, BARRIER_EQUALS>::type func_t;
- static func_t _equals_func;
-
- static bool equals_init(oop o1, oop o2);
-
- static inline bool equals(oop o1, oop o2) {
- return _equals_func(o1, o2);
- }
- };
-
// Initialize the function pointers to point to the resolving function.
template <DecoratorSet decorators, typename T>
typename AccessFunction<decorators, T, BARRIER_STORE>::type
@@ -662,10 +645,6 @@
typename AccessFunction<decorators, T, BARRIER_RESOLVE>::type
RuntimeDispatch<decorators, T, BARRIER_RESOLVE>::_resolve_func = &resolve_init;
- template <DecoratorSet decorators, typename T>
- typename AccessFunction<decorators, T, BARRIER_EQUALS>::type
- RuntimeDispatch<decorators, T, BARRIER_EQUALS>::_equals_func = &equals_init;
-
// Step 3: Pre-runtime dispatching.
// The PreRuntimeDispatch class is responsible for filtering the barrier strength
// decorators. That is, for AS_RAW, it hardwires the accesses without a runtime
@@ -996,21 +975,6 @@
resolve(oop obj) {
return RuntimeDispatch<decorators, oop, BARRIER_RESOLVE>::resolve(obj);
}
-
- template <DecoratorSet decorators>
- inline static typename EnableIf<
- HasDecorator<decorators, AS_RAW>::value || HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
- equals(oop o1, oop o2) {
- typedef RawAccessBarrier<decorators & RAW_DECORATOR_MASK> Raw;
- return Raw::equals(o1, o2);
- }
-
- template <DecoratorSet decorators>
- inline static typename EnableIf<
- !HasDecorator<decorators, AS_RAW>::value && !HasDecorator<decorators, INTERNAL_BT_TO_SPACE_INVARIANT>::value, bool>::type
- equals(oop o1, oop o2) {
- return RuntimeDispatch<decorators, oop, BARRIER_EQUALS>::equals(o1, o2);
- }
};
// Step 2: Reduce types.
@@ -1309,12 +1273,6 @@
return PreRuntimeDispatch::resolve<expanded_decorators>(obj);
}
- template <DecoratorSet decorators>
- inline bool equals(oop o1, oop o2) {
- const DecoratorSet expanded_decorators = DecoratorFixup<decorators>::value;
- return PreRuntimeDispatch::equals<expanded_decorators>(o1, o2);
- }
-
// Infer the type that should be returned from an Access::oop_load.
template <typename P, DecoratorSet decorators>
class OopLoadProxy: public StackObj {
--- a/src/hotspot/share/oops/compressedOops.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/compressedOops.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2019, 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
@@ -29,6 +29,7 @@
#include "memory/universe.hpp"
#include "oops/compressedOops.hpp"
#include "oops/oop.hpp"
+#include "utilities/align.hpp"
// Functions for encoding and decoding compressed oops.
// If the oops are compressed, the type passed to these overloaded functions
@@ -47,7 +48,7 @@
inline oop CompressedOops::decode_not_null(narrowOop v) {
assert(!is_null(v), "narrow oop value can never be zero");
oop result = decode_raw(v);
- assert(check_obj_alignment(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
+ assert(is_object_aligned(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
return result;
}
@@ -62,7 +63,7 @@
assert(OopEncodingHeapMax > pd, "change encoding max if new encoding");
uint64_t result = pd >> shift();
assert((result & CONST64(0xffffffff00000000)) == 0, "narrow oop overflow");
- assert(oopDesc::equals_raw(decode(result), v), "reversibility");
+ assert(decode(result) == v, "reversibility");
return (narrowOop)result;
}
--- a/src/hotspot/share/oops/constantPool.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/constantPool.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -866,7 +866,7 @@
if (cache_index >= 0) {
result_oop = this_cp->resolved_references()->obj_at(cache_index);
if (result_oop != NULL) {
- if (oopDesc::equals(result_oop, Universe::the_null_sentinel())) {
+ if (result_oop == Universe::the_null_sentinel()) {
DEBUG_ONLY(int temp_index = (index >= 0 ? index : this_cp->object_to_cp_index(cache_index)));
assert(this_cp->tag_at(temp_index).is_dynamic_constant(), "only condy uses the null sentinel");
result_oop = NULL;
@@ -1096,12 +1096,12 @@
} else {
// Return the winning thread's result. This can be different than
// the result here for MethodHandles.
- if (oopDesc::equals(old_result, Universe::the_null_sentinel()))
+ if (old_result == Universe::the_null_sentinel())
old_result = NULL;
return old_result;
}
} else {
- assert(!oopDesc::equals(result_oop, Universe::the_null_sentinel()), "");
+ assert(result_oop != Universe::the_null_sentinel(), "");
return result_oop;
}
}
@@ -1154,7 +1154,7 @@
oop ConstantPool::string_at_impl(const constantPoolHandle& this_cp, int which, int obj_index, TRAPS) {
// If the string has already been interned, this entry will be non-null
oop str = this_cp->resolved_references()->obj_at(obj_index);
- assert(!oopDesc::equals(str, Universe::the_null_sentinel()), "");
+ assert(str != Universe::the_null_sentinel(), "");
if (str != NULL) return str;
Symbol* sym = this_cp->unresolved_string_at(which);
str = StringTable::intern(sym, CHECK_(NULL));
--- a/src/hotspot/share/oops/instanceKlass.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/instanceKlass.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -2717,7 +2717,7 @@
// and package entries. Both must be the same. This rule
// applies even to classes that are defined in the unnamed
// package, they still must have the same class loader.
- if (oopDesc::equals(classloader1, classloader2) && (classpkg1 == classpkg2)) {
+ if ((classloader1 == classloader2) && (classpkg1 == classpkg2)) {
return true;
}
@@ -2728,7 +2728,7 @@
// and classname information is enough to determine a class's package
bool InstanceKlass::is_same_class_package(oop other_class_loader,
const Symbol* other_class_name) const {
- if (!oopDesc::equals(class_loader(), other_class_loader)) {
+ if (class_loader() != other_class_loader) {
return false;
}
if (name()->fast_compare(other_class_name) == 0) {
--- a/src/hotspot/share/oops/klassVtable.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/klassVtable.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -491,7 +491,7 @@
// to link to the first super, and we get all the others.
Handle super_loader(THREAD, super_klass->class_loader());
- if (!oopDesc::equals(target_loader(), super_loader())) {
+ if (target_loader() != super_loader()) {
ResourceMark rm(THREAD);
Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(signature, target_loader,
@@ -1237,7 +1237,7 @@
// if checkconstraints requested
if (checkconstraints) {
Handle method_holder_loader (THREAD, target->method_holder()->class_loader());
- if (!oopDesc::equals(method_holder_loader(), interface_loader())) {
+ if (method_holder_loader() != interface_loader()) {
ResourceMark rm(THREAD);
Symbol* failed_type_symbol =
SystemDictionary::check_signature_loaders(m->signature(),
--- a/src/hotspot/share/oops/objArrayKlass.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/objArrayKlass.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -212,7 +212,7 @@
// Either oop or narrowOop depending on UseCompressedOops.
void ObjArrayKlass::do_copy(arrayOop s, size_t src_offset,
arrayOop d, size_t dst_offset, int length, TRAPS) {
- if (oopDesc::equals(s, d)) {
+ if (s == d) {
// since source and destination are equal we do not need conversion checks.
assert(length > 0, "sanity check");
ArrayAccess<>::oop_arraycopy(s, src_offset, d, dst_offset, length);
--- a/src/hotspot/share/oops/oop.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/oop.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -150,10 +150,6 @@
}
}
- inline static bool equals(oop o1, oop o2) { return Access<>::equals(o1, o2); }
-
- inline static bool equals_raw(oop o1, oop o2) { return RawAccess<>::equals(o1, o2); }
-
// Access to fields in a instanceOop through these methods.
template <DecoratorSet decorator>
oop obj_field_access(int offset) const;
--- a/src/hotspot/share/oops/oopsHierarchy.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/oopsHierarchy.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -23,9 +23,6 @@
*/
#include "precompiled.hpp"
-#include "gc/shared/barrierSet.hpp"
-#include "gc/shared/collectedHeap.hpp"
-#include "gc/shared/collectedHeap.inline.hpp"
#include "memory/universe.hpp"
#include "oops/oopsHierarchy.hpp"
#include "runtime/thread.inline.hpp"
@@ -56,14 +53,4 @@
}
}
-bool oop::operator==(const oop o) const {
- assert(BarrierSet::barrier_set()->oop_equals_operator_allowed(), "Not allowed");
- return obj() == o.obj();
-}
-
-bool oop::operator!=(const volatile oop o) const {
- assert(BarrierSet::barrier_set()->oop_equals_operator_allowed(), "Not allowed");
- return obj() != o.obj();
-}
-
#endif // CHECK_UNHANDLED_OOPS
--- a/src/hotspot/share/oops/oopsHierarchy.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/oops/oopsHierarchy.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -100,9 +100,9 @@
// General access
oopDesc* operator->() const { return obj(); }
- bool operator==(const oop o) const;
+ bool operator==(const oop o) const { return obj() == o.obj(); }
bool operator==(void *p) const { return obj() == p; }
- bool operator!=(const volatile oop o) const;
+ bool operator!=(const volatile oop o) const { return obj() != o.obj(); }
bool operator!=(void *p) const { return obj() != p; }
// Assignment
@@ -190,10 +190,6 @@
return (T)(CHECK_UNHANDLED_OOPS_ONLY((void*))o);
}
-inline bool check_obj_alignment(void* ptr) {
- return (uintptr_t(ptr) & MinObjAlignmentInBytesMask) == 0;
-}
-
// The metadata hierarchy is separate from the oop hierarchy
// class MetaspaceObj
--- a/src/hotspot/share/prims/jni.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/jni.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -568,7 +568,7 @@
oop super_mirror = JNIHandles::resolve_non_null(super);
if (java_lang_Class::is_primitive(sub_mirror) ||
java_lang_Class::is_primitive(super_mirror)) {
- jboolean ret = oopDesc::equals(sub_mirror, super_mirror);
+ jboolean ret = (sub_mirror == super_mirror);
HOTSPOT_JNI_ISASSIGNABLEFROM_RETURN(ret);
return ret;
--- a/src/hotspot/share/prims/jvm.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/jvm.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -1257,7 +1257,7 @@
protection_domain = method->method_holder()->protection_domain();
}
- if ((!oopDesc::equals(previous_protection_domain, protection_domain)) && (protection_domain != NULL)) {
+ if ((previous_protection_domain != protection_domain) && (protection_domain != NULL)) {
local_array->push(protection_domain);
previous_protection_domain = protection_domain;
}
--- a/src/hotspot/share/prims/jvmtiTagMap.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/jvmtiTagMap.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -105,7 +105,7 @@
}
inline bool equals(oop object) {
- return oopDesc::equals(object, object_peek());
+ return object == object_peek();
}
inline JvmtiTagHashmapEntry* next() const { return _next; }
--- a/src/hotspot/share/prims/methodHandles.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/methodHandles.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -1003,7 +1003,7 @@
if (!java_lang_invoke_MemberName::is_instance(result()))
return -99; // caller bug!
oop saved = MethodHandles::init_field_MemberName(result, st.field_descriptor());
- if (!oopDesc::equals(saved, result()))
+ if (saved != result())
results->obj_at_put(rfill-1, saved); // show saved instance to user
} else if (++overflow >= overflow_limit) {
match_flags = 0; break; // got tired of looking at overflow
@@ -1055,7 +1055,7 @@
return -99; // caller bug!
CallInfo info(m, NULL, CHECK_0);
oop saved = MethodHandles::init_method_MemberName(result, info);
- if (!oopDesc::equals(saved, result()))
+ if (saved != result())
results->obj_at_put(rfill-1, saved); // show saved instance to user
} else if (++overflow >= overflow_limit) {
match_flags = 0; break; // got tired of looking at overflow
--- a/src/hotspot/share/prims/stackwalk.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/stackwalk.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -50,7 +50,7 @@
bool BaseFrameStream::check_magic(objArrayHandle frames_array) {
oop m1 = frames_array->obj_at(magic_pos);
jlong m2 = _anchor;
- if (oopDesc::equals(m1, _thread->threadObj()) && m2 == address_value()) return true;
+ if (m1 == _thread->threadObj() && m2 == address_value()) return true;
return false;
}
@@ -81,7 +81,7 @@
{
assert(thread != NULL && thread->is_Java_thread(), "");
oop m1 = frames_array->obj_at(magic_pos);
- if (!oopDesc::equals(m1, thread->threadObj())) return NULL;
+ if (m1 != thread->threadObj()) return NULL;
if (magic == 0L) return NULL;
BaseFrameStream* stream = (BaseFrameStream*) (intptr_t) magic;
if (!stream->is_valid_in(thread, frames_array)) return NULL;
--- a/src/hotspot/share/prims/unsafe.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/prims/unsafe.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -935,7 +935,7 @@
oop p = JNIHandles::resolve(obj);
assert_field_offset_sane(p, offset);
oop ret = HeapAccess<ON_UNKNOWN_OOP_REF>::oop_atomic_cmpxchg_at(x, p, (ptrdiff_t)offset, e);
- return oopDesc::equals(ret, e);
+ return ret == e;
} UNSAFE_END
UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSetInt(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jint e, jint x)) {
--- a/src/hotspot/share/runtime/biasedLocking.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/runtime/biasedLocking.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -257,7 +257,7 @@
BasicLock* highest_lock = NULL;
for (int i = 0; i < cached_monitor_info->length(); i++) {
MonitorInfo* mon_info = cached_monitor_info->at(i);
- if (oopDesc::equals(mon_info->owner(), obj)) {
+ if (mon_info->owner() == obj) {
log_trace(biasedlocking)(" mon_info->owner (" PTR_FORMAT ") == obj (" PTR_FORMAT ")",
p2i((void *) mon_info->owner()),
p2i((void *) obj));
@@ -693,7 +693,7 @@
BasicLock* highest_lock = NULL;
for (int i = 0; i < cached_monitor_info->length(); i++) {
MonitorInfo* mon_info = cached_monitor_info->at(i);
- if (oopDesc::equals(mon_info->owner(), obj)) {
+ if (mon_info->owner() == obj) {
log_trace(biasedlocking)(" mon_info->owner (" PTR_FORMAT ") == obj (" PTR_FORMAT ")",
p2i(mon_info->owner()),
p2i(obj));
--- a/src/hotspot/share/runtime/handles.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/runtime/handles.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -79,8 +79,8 @@
oop operator () () const { return obj(); }
oop operator -> () const { return non_null_obj(); }
- bool operator == (oop o) const { return oopDesc::equals(obj(), o); }
- bool operator == (const Handle& h) const { return oopDesc::equals(obj(), h.obj()); }
+ bool operator == (oop o) const { return obj() == o; }
+ bool operator == (const Handle& h) const { return obj() == h.obj(); }
// Null checks
bool is_null() const { return _handle == NULL; }
--- a/src/hotspot/share/runtime/jniHandles.inline.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/runtime/jniHandles.inline.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -84,7 +84,7 @@
inline bool JNIHandles::is_same_object(jobject handle1, jobject handle2) {
oop obj1 = resolve_no_keepalive(handle1);
oop obj2 = resolve_no_keepalive(handle2);
- return oopDesc::equals(obj1, obj2);
+ return obj1 == obj2;
}
inline oop JNIHandles::resolve_non_null(jobject handle) {
--- a/src/hotspot/share/runtime/synchronizer.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/runtime/synchronizer.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -171,7 +171,7 @@
if (mark.has_monitor()) {
ObjectMonitor* const mon = mark.monitor();
- assert(oopDesc::equals((oop) mon->object(), obj), "invariant");
+ assert(mon->object() == obj, "invariant");
if (mon->owner() != self) return false; // slow-path for IMS exception
if (mon->first_waiter() != NULL) {
@@ -215,7 +215,7 @@
if (mark.has_monitor()) {
ObjectMonitor* const m = mark.monitor();
- assert(oopDesc::equals((oop) m->object(), obj), "invariant");
+ assert(m->object() == obj, "invariant");
Thread* const owner = (Thread *) m->_owner;
// Lock contention and Transactional Lock Elision (TLE) diagnostics
@@ -1301,7 +1301,7 @@
ObjectMonitor* inf = mark.monitor();
markWord dmw = inf->header();
assert(dmw.is_neutral(), "invariant: header=" INTPTR_FORMAT, dmw.value());
- assert(oopDesc::equals((oop) inf->object(), object), "invariant");
+ assert(inf->object() == object, "invariant");
assert(ObjectSynchronizer::verify_objmon_isinpool(inf), "monitor is invalid");
return inf;
}
--- a/src/hotspot/share/runtime/vframe.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/runtime/vframe.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -135,7 +135,7 @@
//
// Skip the monitor that the thread is blocked to enter or waiting on
//
- if (!found_first_monitor && (oopDesc::equals(obj, pending_obj) || oopDesc::equals(obj, waiting_obj))) {
+ if (!found_first_monitor && (obj == pending_obj || obj == waiting_obj)) {
continue;
}
found_first_monitor = true;
--- a/src/hotspot/share/services/memoryManager.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/services/memoryManager.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -70,7 +70,7 @@
int add_pool(MemoryPool* pool);
- bool is_manager(instanceHandle mh) { return oopDesc::equals(mh(), _memory_mgr_obj); }
+ bool is_manager(instanceHandle mh) { return mh() == _memory_mgr_obj; }
virtual instanceOop get_memory_manager_instance(TRAPS);
virtual bool is_gc_memory_manager() { return false; }
--- a/src/hotspot/share/services/memoryPool.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/services/memoryPool.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -95,7 +95,7 @@
// max size could be changed
virtual size_t max_size() const { return _max_size; }
- bool is_pool(instanceHandle pool) { return oopDesc::equals(pool(), _memory_pool_obj); }
+ bool is_pool(instanceHandle pool) { return pool() == _memory_pool_obj; }
bool available_for_allocation() { return _available_for_allocation; }
bool set_available_for_allocation(bool value) {
--- a/src/hotspot/share/services/threadService.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/services/threadService.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -680,7 +680,7 @@
for (int j = 0; j < len; j++) {
oop monitor = locked_monitors->at(j);
assert(monitor != NULL, "must be a Java object");
- if (oopDesc::equals(monitor, object)) {
+ if (monitor == object) {
found = true;
break;
}
--- a/src/hotspot/share/utilities/exceptions.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/utilities/exceptions.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -435,9 +435,9 @@
volatile int Exceptions::_out_of_memory_error_class_metaspace_errors = 0;
void Exceptions::count_out_of_memory_exceptions(Handle exception) {
- if (oopDesc::equals(exception(), Universe::out_of_memory_error_metaspace())) {
+ if (exception() == Universe::out_of_memory_error_metaspace()) {
Atomic::inc(&_out_of_memory_error_metaspace_errors);
- } else if (oopDesc::equals(exception(), Universe::out_of_memory_error_class_metaspace())) {
+ } else if (exception() == Universe::out_of_memory_error_class_metaspace()) {
Atomic::inc(&_out_of_memory_error_class_metaspace_errors);
} else {
// everything else reported as java heap OOM
--- a/src/hotspot/share/utilities/growableArray.hpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/hotspot/share/utilities/growableArray.hpp Tue Sep 17 10:43:49 2019 +0200
@@ -218,15 +218,6 @@
void print();
- inline static bool safe_equals(oop obj1, oop obj2) {
- return oopDesc::equals(obj1, obj2);
- }
-
- template <class X>
- inline static bool safe_equals(X i1, X i2) {
- return i1 == i2;
- }
-
int append(const E& elem) {
check_nesting();
if (_len == _max) grow(_len);
@@ -311,7 +302,7 @@
bool contains(const E& elem) const {
for (int i = 0; i < _len; i++) {
- if (safe_equals(_data[i], elem)) return true;
+ if (_data[i] == elem) return true;
}
return false;
}
--- a/src/java.desktop/unix/native/common/awt/fontpath.c Mon Sep 16 19:48:10 2019 +0200
+++ b/src/java.desktop/unix/native/common/awt/fontpath.c Tue Sep 17 10:43:49 2019 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2019, 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
@@ -887,9 +887,9 @@
locale = (*env)->GetStringUTFChars(env, localeStr, 0);
if ((libfontconfig = openFontConfig()) == NULL) {
- (*env)->ReleaseStringUTFChars (env, fcNameStr, (const char*)fcName);
+ (*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
if (locale) {
- (*env)->ReleaseStringUTFChars (env, localeStr,(const char*)locale);
+ (*env)->ReleaseStringUTFChars(env, localeStr,(const char*)locale);
}
return -1;
}
@@ -918,9 +918,9 @@
FcPatternGetInteger == NULL ||
FcPatternDestroy == NULL) { /* problem with the library: return. */
- (*env)->ReleaseStringUTFChars (env, fcNameStr, (const char*)fcName);
+ (*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
if (locale) {
- (*env)->ReleaseStringUTFChars (env, localeStr,(const char*)locale);
+ (*env)->ReleaseStringUTFChars(env, localeStr,(const char*)locale);
}
closeFontConfig(libfontconfig, JNI_FALSE);
return -1;
@@ -945,9 +945,9 @@
}
(*FcPatternDestroy)(pattern);
- (*env)->ReleaseStringUTFChars (env, fcNameStr, (const char*)fcName);
+ (*env)->ReleaseStringUTFChars(env, fcNameStr, (const char*)fcName);
if (locale) {
- (*env)->ReleaseStringUTFChars (env, localeStr, (const char*)locale);
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
}
closeFontConfig(libfontconfig, JNI_TRUE);
@@ -1179,6 +1179,9 @@
(*env)->DeleteLocalRef(env, fcNameStr);
if (pattern == NULL) {
closeFontConfig(libfontconfig, JNI_FALSE);
+ if (locale) {
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
+ }
return;
}
@@ -1196,6 +1199,9 @@
if (fontset == NULL) {
(*FcPatternDestroy)(pattern);
closeFontConfig(libfontconfig, JNI_FALSE);
+ if (locale) {
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
+ }
return;
}
@@ -1227,6 +1233,9 @@
(*FcPatternDestroy)(pattern);
(*FcFontSetDestroy)(fontset);
closeFontConfig(libfontconfig, JNI_FALSE);
+ if (locale) {
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
+ }
return;
}
fontCount = 0;
@@ -1269,6 +1278,9 @@
(*FcPatternDestroy)(pattern);
(*FcFontSetDestroy)(fontset);
closeFontConfig(libfontconfig, JNI_FALSE);
+ if (locale) {
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
+ }
return;
}
@@ -1323,6 +1335,9 @@
(*FcPatternDestroy)(pattern);
(*FcFontSetDestroy)(fontset);
closeFontConfig(libfontconfig, JNI_FALSE);
+ if (locale) {
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
+ }
return;
}
(*env)->SetObjectField(env,fcCompFontObj, fcAllFontsID, fcFontArr);
@@ -1384,7 +1399,7 @@
/* release resources and close the ".so" */
if (locale) {
- (*env)->ReleaseStringUTFChars (env, localeStr, (const char*)locale);
+ (*env)->ReleaseStringUTFChars(env, localeStr, (const char*)locale);
}
closeFontConfig(libfontconfig, JNI_TRUE);
}
--- a/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/java.desktop/windows/native/libawt/windows/ShellFolder2.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2019, 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
@@ -1130,6 +1130,9 @@
const char *pLibName = env->GetStringUTFChars(libName, NULL);
JNU_CHECK_EXCEPTION_RETURN(env, 0);
HINSTANCE libHandle = (HINSTANCE)JDK_LoadSystemLibrary(pLibName);
+ if (pLibName != NULL) {
+ env->ReleaseStringUTFChars(libName, pLibName);
+ }
if (libHandle != NULL) {
UINT fuLoad = (useVGAColors && !IS_WINXP) ? LR_VGACOLOR : 0;
return ptr_to_jlong(LoadImage(libHandle, MAKEINTRESOURCE(iconID),
--- a/src/java.instrument/share/native/libinstrument/JPLISAgent.c Mon Sep 16 19:48:10 2019 +0200
+++ b/src/java.instrument/share/native/libinstrument/JPLISAgent.c Tue Sep 17 10:43:49 2019 +0200
@@ -1486,6 +1486,7 @@
platformLen = convertUft8ToPlatformString((char*)utf8Chars, utf8Len, platformChars, MAXPATHLEN);
if (platformLen < 0) {
createAndThrowInternalError(jnienv);
+ (*jnienv)->ReleaseStringUTFChars(jnienv, jarFile, utf8Chars);
return;
}
--- a/src/jdk.hotspot.agent/solaris/native/libsaproc/saproc.cpp Mon Sep 16 19:48:10 2019 +0200
+++ b/src/jdk.hotspot.agent/solaris/native/libsaproc/saproc.cpp Tue Sep 17 10:43:49 2019 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2019, 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
@@ -692,11 +692,15 @@
char errMsg[ERR_MSG_SIZE];
td_err_e te;
CHECK_EXCEPTION;
+ if (cmdLine_cstr == NULL) {
+ return;
+ }
// some older versions of libproc.so crash when trying to attach 32 bit
// debugger to 64 bit core file. check and throw error.
#ifndef _LP64
- atoi(cmdLine_cstr);
+ errno = 0;
+ strtol(cmdLine_cstr, NULL, 10);
if (errno) {
// core file
int core_fd;
@@ -706,6 +710,7 @@
memcmp(&e32.e_ident[EI_MAG0], ELFMAG, SELFMAG) == 0 &&
e32.e_type == ET_CORE && e32.e_ident[EI_CLASS] == ELFCLASS64) {
close(core_fd);
+ env->ReleaseStringUTFChars(cmdLine, cmdLine_cstr);
THROW_NEW_DEBUGGER_EXCEPTION("debuggee is 64 bit, use java -d64 for debugger");
}
close(core_fd);
@@ -718,6 +723,7 @@
ps_prochandle_t* ph = proc_arg_grab(cmdLine_cstr, (isProcess? PR_ARG_PIDS : PR_ARG_CORES), PGRAB_FORCE, &gcode, NULL);
env->ReleaseStringUTFChars(cmdLine, cmdLine_cstr);
+
if (! ph) {
if (gcode > 0 && gcode < sizeof(proc_arg_grab_errmsgs)/sizeof(const char*)) {
snprintf(errMsg, ERR_MSG_SIZE, "Attach failed : %s", proc_arg_grab_errmsgs[gcode]);