equal
deleted
inserted
replaced
51 #include "logging/logStream.hpp" |
51 #include "logging/logStream.hpp" |
52 #include "memory/filemap.hpp" |
52 #include "memory/filemap.hpp" |
53 #include "memory/metaspaceClosure.hpp" |
53 #include "memory/metaspaceClosure.hpp" |
54 #include "memory/oopFactory.hpp" |
54 #include "memory/oopFactory.hpp" |
55 #include "memory/resourceArea.hpp" |
55 #include "memory/resourceArea.hpp" |
|
56 #include "oops/access.inline.hpp" |
56 #include "oops/instanceKlass.hpp" |
57 #include "oops/instanceKlass.hpp" |
57 #include "oops/instanceRefKlass.hpp" |
58 #include "oops/instanceRefKlass.hpp" |
58 #include "oops/klass.inline.hpp" |
59 #include "oops/klass.inline.hpp" |
59 #include "oops/method.inline.hpp" |
60 #include "oops/method.inline.hpp" |
60 #include "oops/methodData.hpp" |
61 #include "oops/methodData.hpp" |
1827 class VerifySDReachableAndLiveClosure : public OopClosure { |
1828 class VerifySDReachableAndLiveClosure : public OopClosure { |
1828 private: |
1829 private: |
1829 BoolObjectClosure* _is_alive; |
1830 BoolObjectClosure* _is_alive; |
1830 |
1831 |
1831 template <class T> void do_oop_work(T* p) { |
1832 template <class T> void do_oop_work(T* p) { |
1832 oop obj = oopDesc::load_decode_heap_oop(p); |
1833 oop obj = RawAccess<>::oop_load(p); |
1833 guarantee(_is_alive->do_object_b(obj), "Oop in protection domain cache table must be live"); |
1834 guarantee(_is_alive->do_object_b(obj), "Oop in protection domain cache table must be live"); |
1834 } |
1835 } |
1835 |
1836 |
1836 public: |
1837 public: |
1837 VerifySDReachableAndLiveClosure(BoolObjectClosure* is_alive) : OopClosure(), _is_alive(is_alive) { } |
1838 VerifySDReachableAndLiveClosure(BoolObjectClosure* is_alive) : OopClosure(), _is_alive(is_alive) { } |
2697 if (!can_be_cached) { |
2698 if (!can_be_cached) { |
2698 // Resolve, throwing a real error if it doesn't work. |
2699 // Resolve, throwing a real error if it doesn't work. |
2699 mirror = ss.as_java_mirror(class_loader, protection_domain, |
2700 mirror = ss.as_java_mirror(class_loader, protection_domain, |
2700 SignatureStream::NCDFError, CHECK_(empty)); |
2701 SignatureStream::NCDFError, CHECK_(empty)); |
2701 } |
2702 } |
2702 assert(!oopDesc::is_null(mirror), "%s", ss.as_symbol(THREAD)->as_C_string()); |
2703 assert(mirror != NULL, "%s", ss.as_symbol(THREAD)->as_C_string()); |
2703 if (ss.at_return_type()) |
2704 if (ss.at_return_type()) |
2704 rt = Handle(THREAD, mirror); |
2705 rt = Handle(THREAD, mirror); |
2705 else |
2706 else |
2706 pts->obj_at_put(arg++, mirror); |
2707 pts->obj_at_put(arg++, mirror); |
2707 |
2708 |