src/share/vm/oops/instanceKlass.hpp

Print this page
rev 3 : [mq]: anonk.patch

@@ -145,10 +145,12 @@
   constantPoolOop _constants;
   // Class loader used to load this class, NULL if VM loader used.
   oop             _class_loader;
   // Protection domain.
   oop             _protection_domain;
+  // Host class, which shares access with this class
+  klassOop        _host_klass;
   // Class signers.
   objArrayOop     _signers;
   // Name of source file containing this klass, NULL if not specified.
   symbolOop       _source_file_name;
   // the source debug extension for this klass, NULL if not specified.

@@ -368,10 +370,15 @@
 
   // protection domain
   oop protection_domain()                  { return _protection_domain; }
   void set_protection_domain(oop pd)       { oop_store((oop*) &_protection_domain, pd); }
 
+  // host class
+  oop host_klass() const                   { return _host_klass; }
+  void set_host_klass(oop host)            { oop_store((oop*) &_host_klass, host); }
+  bool is_anonymous() const                { return _host_klass != NULL; }
+
   // signers
   objArrayOop signers() const              { return _signers; }
   void set_signers(objArrayOop s)          { oop_store((oop*) &_signers, oop(s)); }
 
   // source file name

@@ -683,10 +690,11 @@
   oop* adr_transitive_interfaces() const  { return (oop*)&this->_transitive_interfaces;}
   oop* adr_fields() const            { return (oop*)&this->_fields;}
   oop* adr_constants() const         { return (oop*)&this->_constants;}
   oop* adr_class_loader() const      { return (oop*)&this->_class_loader;}
   oop* adr_protection_domain() const { return (oop*)&this->_protection_domain;}
+  oop* adr_host_klass() const        { return (oop*)&this->_host_klass;}
   oop* adr_signers() const           { return (oop*)&this->_signers;}
   oop* adr_source_file_name() const  { return (oop*)&this->_source_file_name;}
   oop* adr_source_debug_extension() const { return (oop*)&this->_source_debug_extension;}
   oop* adr_inner_classes() const     { return (oop*)&this->_inner_classes;}
   oop* adr_implementors() const      { return (oop*)&this->_implementors[0];}