8247524: Remove unnecessary volatile qualifiers from member functions
Remove qualifiers for oopDesc and metadata-related member functions.
Reviewed-by: stefank, dholmes, stuefe, coleenp
diff --git a/src/hotspot/share/memory/binaryTreeDictionary.hpp b/src/hotspot/share/memory/binaryTreeDictionary.hpp
index a521200..e8e0893 100644
--- a/src/hotspot/share/memory/binaryTreeDictionary.hpp
+++ b/src/hotspot/share/memory/binaryTreeDictionary.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -158,7 +158,7 @@
Chunk_t* next() const { return Chunk_t::next(); }
Chunk_t* prev() const { return Chunk_t::prev(); }
- size_t size() const volatile { return Chunk_t::size(); }
+ size_t size() const { return Chunk_t::size(); }
static size_t min_size();
diff --git a/src/hotspot/share/memory/metaspace/metabase.hpp b/src/hotspot/share/memory/metaspace/metabase.hpp
index 31d7c5d..0f9f320 100644
--- a/src/hotspot/share/memory/metaspace/metabase.hpp
+++ b/src/hotspot/share/memory/metaspace/metabase.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 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
@@ -48,8 +48,7 @@
void clear_next() { set_next(NULL); }
void clear_prev() { set_prev(NULL); }
- size_t size() const volatile { return _word_size; }
- void set_size(size_t v) { _word_size = v; }
+ size_t size() const { return _word_size; }
void link_next(T* ptr) { set_next(ptr); }
void link_prev(T* ptr) { set_prev(ptr); }
diff --git a/src/hotspot/share/oops/constantPool.hpp b/src/hotspot/share/oops/constantPool.hpp
index 51f6ef4..c279299 100644
--- a/src/hotspot/share/oops/constantPool.hpp
+++ b/src/hotspot/share/oops/constantPool.hpp
@@ -189,7 +189,7 @@
public:
static ConstantPool* allocate(ClassLoaderData* loader_data, int length, TRAPS);
- bool is_constantPool() const volatile { return true; }
+ virtual bool is_constantPool() const { return true; }
Array<u1>* tags() const { return _tags; }
Array<u2>* operands() const { return _operands; }
diff --git a/src/hotspot/share/oops/klass.hpp b/src/hotspot/share/oops/klass.hpp
index c90477c..2387879 100644
--- a/src/hotspot/share/oops/klass.hpp
+++ b/src/hotspot/share/oops/klass.hpp
@@ -201,7 +201,7 @@
enum StaticLookupMode { find_static, skip_static };
enum PrivateLookupMode { find_private, skip_private };
- bool is_klass() const volatile { return true; }
+ virtual bool is_klass() const { return true; }
// super() cannot be InstanceKlass* -- Java arrays are covariant, and _super is used
// to implement that. NB: the _super of "[Ljava/lang/Integer;" is "[Ljava/lang/Number;"
diff --git a/src/hotspot/share/oops/metadata.hpp b/src/hotspot/share/oops/metadata.hpp
index 1ff97ed..7e6192b 100644
--- a/src/hotspot/share/oops/metadata.hpp
+++ b/src/hotspot/share/oops/metadata.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -34,17 +34,17 @@
// Debugging hook to check that the metadata has not been deleted.
NOT_PRODUCT(int _valid;)
public:
- NOT_PRODUCT(Metadata() { _valid = 0; })
- NOT_PRODUCT(bool is_valid() const volatile { return _valid == 0; })
+ NOT_PRODUCT(Metadata() : _valid(0) {})
+ NOT_PRODUCT(bool is_valid() const { return _valid == 0; })
int identity_hash() { return (int)(uintptr_t)this; }
- virtual bool is_metadata() const volatile { return true; }
- virtual bool is_klass() const volatile { return false; }
- virtual bool is_method() const volatile { return false; }
- virtual bool is_methodData() const volatile { return false; }
- virtual bool is_constantPool() const volatile { return false; }
- virtual bool is_methodCounters() const volatile { return false; }
+ virtual bool is_metadata() const { return true; }
+ virtual bool is_klass() const { return false; }
+ virtual bool is_method() const { return false; }
+ virtual bool is_methodData() const { return false; }
+ virtual bool is_constantPool() const { return false; }
+ virtual bool is_methodCounters() const { return false; }
virtual int size() const = 0;
virtual MetaspaceObj::Type type() const = 0;
virtual const char* internal_name() const = 0;
diff --git a/src/hotspot/share/oops/method.hpp b/src/hotspot/share/oops/method.hpp
index 5b912ca..4ae64cf 100644
--- a/src/hotspot/share/oops/method.hpp
+++ b/src/hotspot/share/oops/method.hpp
@@ -130,7 +130,7 @@
// CDS and vtbl checking can create an empty Method to get vtbl pointer.
Method(){}
- bool is_method() const volatile { return true; }
+ virtual bool is_method() const { return true; }
void restore_unshareable_info(TRAPS);
diff --git a/src/hotspot/share/oops/methodCounters.hpp b/src/hotspot/share/oops/methodCounters.hpp
index 267cc03..eee7b78 100644
--- a/src/hotspot/share/oops/methodCounters.hpp
+++ b/src/hotspot/share/oops/methodCounters.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 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
@@ -113,7 +113,7 @@
}
public:
- virtual bool is_methodCounters() const volatile { return true; }
+ virtual bool is_methodCounters() const { return true; }
static MethodCounters* allocate(const methodHandle& mh, TRAPS);
diff --git a/src/hotspot/share/oops/methodData.hpp b/src/hotspot/share/oops/methodData.hpp
index 05a40f7..4567b7d 100644
--- a/src/hotspot/share/oops/methodData.hpp
+++ b/src/hotspot/share/oops/methodData.hpp
@@ -1957,7 +1957,7 @@
static MethodData* allocate(ClassLoaderData* loader_data, const methodHandle& method, TRAPS);
MethodData() : _extra_data_lock(Mutex::leaf, "MDO extra data lock") {}; // For ciMethodData
- bool is_methodData() const volatile { return true; }
+ virtual bool is_methodData() const { return true; }
void initialize();
// Whole-method sticky bits and flags
diff --git a/src/hotspot/share/oops/oop.hpp b/src/hotspot/share/oops/oop.hpp
index 9057ac0..202aec9 100644
--- a/src/hotspot/share/oops/oop.hpp
+++ b/src/hotspot/share/oops/oop.hpp
@@ -78,8 +78,8 @@
inline void init_mark_raw();
inline Klass* klass() const;
- inline Klass* klass_or_null() const volatile;
- inline Klass* klass_or_null_acquire() const volatile;
+ inline Klass* klass_or_null() const;
+ inline Klass* klass_or_null_acquire() const;
static inline Klass** klass_addr(HeapWord* mem);
static inline narrowKlass* compressed_klass_addr(HeapWord* mem);
inline Klass** klass_addr();
diff --git a/src/hotspot/share/oops/oop.inline.hpp b/src/hotspot/share/oops/oop.inline.hpp
index bf16876..304993c 100644
--- a/src/hotspot/share/oops/oop.inline.hpp
+++ b/src/hotspot/share/oops/oop.inline.hpp
@@ -96,7 +96,7 @@
}
}
-Klass* oopDesc::klass_or_null() const volatile {
+Klass* oopDesc::klass_or_null() const {
if (UseCompressedClassPointers) {
return CompressedKlassPointers::decode(_metadata._compressed_klass);
} else {
@@ -104,12 +104,10 @@
}
}
-Klass* oopDesc::klass_or_null_acquire() const volatile {
+Klass* oopDesc::klass_or_null_acquire() const {
if (UseCompressedClassPointers) {
- // Workaround for non-const load_acquire parameter.
- const volatile narrowKlass* addr = &_metadata._compressed_klass;
- volatile narrowKlass* xaddr = const_cast<volatile narrowKlass*>(addr);
- return CompressedKlassPointers::decode(Atomic::load_acquire(xaddr));
+ narrowKlass nklass = Atomic::load_acquire(&_metadata._compressed_klass);
+ return CompressedKlassPointers::decode(nklass);
} else {
return Atomic::load_acquire(&_metadata._klass);
}