< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page




 497   Klass* array_klass(int rank, TRAPS)         {  return array_klass_impl(false, rank, THREAD); }
 498 
 499   // array class with this klass as element type
 500   Klass* array_klass(TRAPS)                   {  return array_klass_impl(false, THREAD); }
 501 
 502   // These will return NULL instead of allocating on the heap:
 503   // NB: these can block for a mutex, like other functions with TRAPS arg.
 504   Klass* array_klass_or_null(int rank);
 505   Klass* array_klass_or_null();
 506 
 507   virtual oop protection_domain() const = 0;
 508 
 509   oop class_loader() const;
 510 
 511   virtual oop klass_holder() const      { return class_loader(); }
 512 
 513  protected:
 514   virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS);
 515   virtual Klass* array_klass_impl(bool or_null, TRAPS);
 516 



 517   void set_vtable_length(int len) { _vtable_len= len; }
 518 
 519   vtableEntry* start_of_vtable() const;
 520  public:
 521   Method* method_at_vtable(int index);
 522 
 523   static ByteSize vtable_start_offset();
 524   static ByteSize vtable_length_offset() {
 525     return byte_offset_of(Klass, _vtable_len);
 526   }
 527 
 528   // CDS support - remove and restore oops from metadata. Oops are not shared.
 529   virtual void remove_unshareable_info();
 530   virtual void remove_java_mirror();
 531   virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 532 
 533  protected:
 534   // computes the subtype relationship
 535   virtual bool compute_is_subtype_of(Klass* k);
 536  public:




 497   Klass* array_klass(int rank, TRAPS)         {  return array_klass_impl(false, rank, THREAD); }
 498 
 499   // array class with this klass as element type
 500   Klass* array_klass(TRAPS)                   {  return array_klass_impl(false, THREAD); }
 501 
 502   // These will return NULL instead of allocating on the heap:
 503   // NB: these can block for a mutex, like other functions with TRAPS arg.
 504   Klass* array_klass_or_null(int rank);
 505   Klass* array_klass_or_null();
 506 
 507   virtual oop protection_domain() const = 0;
 508 
 509   oop class_loader() const;
 510 
 511   virtual oop klass_holder() const      { return class_loader(); }
 512 
 513  protected:
 514   virtual Klass* array_klass_impl(bool or_null, int rank, TRAPS);
 515   virtual Klass* array_klass_impl(bool or_null, TRAPS);
 516 
 517   // Error handling when length > max_length
 518   static void check_array_allocation_length(int length, int max_length, TRAPS);
 519 
 520   void set_vtable_length(int len) { _vtable_len= len; }
 521 
 522   vtableEntry* start_of_vtable() const;
 523  public:
 524   Method* method_at_vtable(int index);
 525 
 526   static ByteSize vtable_start_offset();
 527   static ByteSize vtable_length_offset() {
 528     return byte_offset_of(Klass, _vtable_len);
 529   }
 530 
 531   // CDS support - remove and restore oops from metadata. Oops are not shared.
 532   virtual void remove_unshareable_info();
 533   virtual void remove_java_mirror();
 534   virtual void restore_unshareable_info(ClassLoaderData* loader_data, Handle protection_domain, TRAPS);
 535 
 536  protected:
 537   // computes the subtype relationship
 538   virtual bool compute_is_subtype_of(Klass* k);
 539  public:


< prev index next >