< prev index next >

src/hotspot/share/oops/klass.hpp

Print this page
rev 50635 : 8199940: Print more information about class loaders in IllegalAccessErrors.
Reviewed-by: lfoltan


 524   virtual int oop_size(oop obj) const = 0;
 525 
 526   // Size of klass in word size.
 527   virtual int size() const = 0;
 528 #if INCLUDE_SERVICES
 529   virtual void collect_statistics(KlassSizeStats *sz) const;
 530 #endif
 531 
 532   // Returns the Java name for a class (Resource allocated)
 533   // For arrays, this returns the name of the element with a leading '['.
 534   // For classes, this returns the name with the package separators
 535   //     turned into '.'s.
 536   const char* external_name() const;
 537   // Returns the name for a class (Resource allocated) as the class
 538   // would appear in a signature.
 539   // For arrays, this returns the name of the element with a leading '['.
 540   // For classes, this returns the name with a leading 'L' and a trailing ';'
 541   //     and the package separators as '/'.
 542   virtual const char* signature_name() const;
 543 



 544   const char* class_loader_and_module_name() const;
 545 
 546   // Returns "interface", "abstract class" or "class".
 547   const char* external_kind() const;
 548 
 549   // type testing operations
 550 #ifdef ASSERT
 551  protected:
 552   virtual bool is_instance_klass_slow()     const { return false; }
 553   virtual bool is_array_klass_slow()        const { return false; }
 554   virtual bool is_objArray_klass_slow()     const { return false; }
 555   virtual bool is_typeArray_klass_slow()    const { return false; }
 556 #endif // ASSERT
 557  public:
 558 
 559   // Fast non-virtual versions
 560   #ifndef ASSERT
 561   #define assert_same_query(xval, xcheck) xval
 562   #else
 563  private:




 524   virtual int oop_size(oop obj) const = 0;
 525 
 526   // Size of klass in word size.
 527   virtual int size() const = 0;
 528 #if INCLUDE_SERVICES
 529   virtual void collect_statistics(KlassSizeStats *sz) const;
 530 #endif
 531 
 532   // Returns the Java name for a class (Resource allocated)
 533   // For arrays, this returns the name of the element with a leading '['.
 534   // For classes, this returns the name with the package separators
 535   //     turned into '.'s.
 536   const char* external_name() const;
 537   // Returns the name for a class (Resource allocated) as the class
 538   // would appear in a signature.
 539   // For arrays, this returns the name of the element with a leading '['.
 540   // For classes, this returns the name with a leading 'L' and a trailing ';'
 541   //     and the package separators as '/'.
 542   virtual const char* signature_name() const;
 543 
 544   // Returns a descriptive string as "<class loader name>/<module>/class name".
 545   // This is the format used in stack traces and similar. Based on
 546   // external_name().
 547   const char* class_loader_and_module_name() const;
 548 
 549   // Returns "interface", "abstract class" or "class".
 550   const char* external_kind() const;
 551 
 552   // type testing operations
 553 #ifdef ASSERT
 554  protected:
 555   virtual bool is_instance_klass_slow()     const { return false; }
 556   virtual bool is_array_klass_slow()        const { return false; }
 557   virtual bool is_objArray_klass_slow()     const { return false; }
 558   virtual bool is_typeArray_klass_slow()    const { return false; }
 559 #endif // ASSERT
 560  public:
 561 
 562   // Fast non-virtual versions
 563   #ifndef ASSERT
 564   #define assert_same_query(xval, xcheck) xval
 565   #else
 566  private:


< prev index next >