src/hotspot/share/classfile/systemDictionary.cpp
changeset 49592 77fb0be7d19f
parent 49352 0b48f0aa79ec
child 49593 4dd58ecc9912
equal deleted inserted replaced
49591:272dff61a2de 49592:77fb0be7d19f
    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