26 #include "classfile/classLoaderData.inline.hpp"
27 #include "classfile/dictionary.hpp"
28 #include "classfile/javaClasses.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "gc/shared/collectedHeap.inline.hpp"
32 #include "logging/log.hpp"
33 #include "memory/heapInspection.hpp"
34 #include "memory/metadataFactory.hpp"
35 #include "memory/metaspaceClosure.hpp"
36 #include "memory/metaspaceShared.hpp"
37 #include "memory/oopFactory.hpp"
38 #include "memory/resourceArea.hpp"
39 #include "oops/compressedOops.inline.hpp"
40 #include "oops/instanceKlass.hpp"
41 #include "oops/klass.inline.hpp"
42 #include "oops/oop.inline.hpp"
43 #include "oops/oopHandle.inline.hpp"
44 #include "runtime/atomic.hpp"
45 #include "runtime/handles.inline.hpp"
46 #include "runtime/orderAccess.inline.hpp"
47 #include "utilities/macros.hpp"
48 #include "utilities/stack.inline.hpp"
49
50 void Klass::set_java_mirror(Handle m) {
51 assert(!m.is_null(), "New mirror should never be null.");
52 assert(_java_mirror.resolve() == NULL, "should only be used to initialize mirror");
53 _java_mirror = class_loader_data()->add_handle(m);
54 }
55
56 oop Klass::java_mirror() const {
57 return _java_mirror.resolve();
58 }
59
60 bool Klass::is_cloneable() const {
61 return _access_flags.is_cloneable_fast() ||
62 is_subtype_of(SystemDictionary::Cloneable_klass());
63 }
64
65 void Klass::set_is_cloneable() {
66 if (name() == vmSymbols::java_lang_invoke_MemberName()) {
|
26 #include "classfile/classLoaderData.inline.hpp"
27 #include "classfile/dictionary.hpp"
28 #include "classfile/javaClasses.hpp"
29 #include "classfile/systemDictionary.hpp"
30 #include "classfile/vmSymbols.hpp"
31 #include "gc/shared/collectedHeap.inline.hpp"
32 #include "logging/log.hpp"
33 #include "memory/heapInspection.hpp"
34 #include "memory/metadataFactory.hpp"
35 #include "memory/metaspaceClosure.hpp"
36 #include "memory/metaspaceShared.hpp"
37 #include "memory/oopFactory.hpp"
38 #include "memory/resourceArea.hpp"
39 #include "oops/compressedOops.inline.hpp"
40 #include "oops/instanceKlass.hpp"
41 #include "oops/klass.inline.hpp"
42 #include "oops/oop.inline.hpp"
43 #include "oops/oopHandle.inline.hpp"
44 #include "runtime/atomic.hpp"
45 #include "runtime/handles.inline.hpp"
46 #include "runtime/orderAccess.hpp"
47 #include "utilities/macros.hpp"
48 #include "utilities/stack.inline.hpp"
49
50 void Klass::set_java_mirror(Handle m) {
51 assert(!m.is_null(), "New mirror should never be null.");
52 assert(_java_mirror.resolve() == NULL, "should only be used to initialize mirror");
53 _java_mirror = class_loader_data()->add_handle(m);
54 }
55
56 oop Klass::java_mirror() const {
57 return _java_mirror.resolve();
58 }
59
60 bool Klass::is_cloneable() const {
61 return _access_flags.is_cloneable_fast() ||
62 is_subtype_of(SystemDictionary::Cloneable_klass());
63 }
64
65 void Klass::set_is_cloneable() {
66 if (name() == vmSymbols::java_lang_invoke_MemberName()) {
|