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