< prev index next >

src/hotspot/share/ci/ciKlass.hpp

Print this page




  27 
  28 #include "ci/ciType.hpp"
  29 #include "oops/klass.hpp"
  30 
  31 // ciKlass
  32 //
  33 // This class and its subclasses represent Klass*s in the
  34 // HotSpot virtual machine.  In the vm, each Klass* contains an
  35 // embedded Klass object.  ciKlass is subclassed to explicitly
  36 // represent the kind of Klass embedded in the Klass*.  For
  37 // example, a Klass* with an embedded ObjArrayKlass object is
  38 // represented in the ciObject hierarchy by the class
  39 // ciObjArrayKlass.
  40 class ciKlass : public ciType {
  41   CI_PACKAGE_ACCESS
  42   friend class ciEnv;
  43   friend class ciField;
  44   friend class ciMethod;
  45   friend class ciMethodData;
  46   friend class ciObjArrayKlass;

  47   friend class ciReceiverTypeData;
  48 
  49 private:
  50   ciSymbol* _name;
  51   jint _layout_helper;
  52 
  53 protected:
  54   ciKlass(Klass* k, ciSymbol* name);
  55   ciKlass(ciSymbol* name, BasicType bt);
  56 
  57   Klass* get_Klass() const {
  58     Klass* k = (Klass*)_metadata;
  59     assert(k != NULL, "illegal use of unloaded klass");
  60     return k;
  61   }
  62 
  63   // Certain subklasses have an associated class loader.
  64   virtual oop loader()             { return NULL; }
  65   virtual jobject loader_handle()  { return NULL; }
  66 




  27 
  28 #include "ci/ciType.hpp"
  29 #include "oops/klass.hpp"
  30 
  31 // ciKlass
  32 //
  33 // This class and its subclasses represent Klass*s in the
  34 // HotSpot virtual machine.  In the vm, each Klass* contains an
  35 // embedded Klass object.  ciKlass is subclassed to explicitly
  36 // represent the kind of Klass embedded in the Klass*.  For
  37 // example, a Klass* with an embedded ObjArrayKlass object is
  38 // represented in the ciObject hierarchy by the class
  39 // ciObjArrayKlass.
  40 class ciKlass : public ciType {
  41   CI_PACKAGE_ACCESS
  42   friend class ciEnv;
  43   friend class ciField;
  44   friend class ciMethod;
  45   friend class ciMethodData;
  46   friend class ciObjArrayKlass;
  47   friend class ciValueArrayKlass;
  48   friend class ciReceiverTypeData;
  49 
  50 private:
  51   ciSymbol* _name;
  52   jint _layout_helper;
  53 
  54 protected:
  55   ciKlass(Klass* k, ciSymbol* name);
  56   ciKlass(ciSymbol* name, BasicType bt);
  57 
  58   Klass* get_Klass() const {
  59     Klass* k = (Klass*)_metadata;
  60     assert(k != NULL, "illegal use of unloaded klass");
  61     return k;
  62   }
  63 
  64   // Certain subklasses have an associated class loader.
  65   virtual oop loader()             { return NULL; }
  66   virtual jobject loader_handle()  { return NULL; }
  67 


< prev index next >