< prev index next >

src/share/vm/ci/ciMethodData.hpp

Print this page
rev 12906 : [mq]: gc_interface


  51 
  52 class ciBitData : public BitData {
  53 public:
  54   ciBitData(DataLayout* layout) : BitData(layout) {};
  55 };
  56 
  57 class ciCounterData : public CounterData {
  58 public:
  59   ciCounterData(DataLayout* layout) : CounterData(layout) {};
  60 };
  61 
  62 class ciJumpData : public JumpData {
  63 public:
  64   ciJumpData(DataLayout* layout) : JumpData(layout) {};
  65 };
  66 
  67 class ciTypeEntries {
  68 protected:
  69   static intptr_t translate_klass(intptr_t k) {
  70     Klass* v = TypeEntries::valid_klass(k);
  71     if (v != NULL) {
  72       ciKlass* klass = CURRENT_ENV->get_klass(v);
  73       CURRENT_ENV->ensure_metadata_alive(klass);
  74       return with_status(klass, k);
  75     }
  76     return with_status(NULL, k);
  77   }
  78 
  79 public:
  80   static ciKlass* valid_ciklass(intptr_t k) {
  81     if (!TypeEntries::is_type_none(k) &&
  82         !TypeEntries::is_type_unknown(k)) {
  83       ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
  84       assert(res != NULL, "invalid");
  85       return res;
  86     } else {
  87       return NULL;
  88     }
  89   }
  90 
  91   static intptr_t with_status(ciKlass* k, intptr_t in) {
  92     return TypeEntries::with_status((intptr_t)k, in);
  93   }
  94 
  95 #ifndef PRODUCT
  96   static void print_ciklass(outputStream* st, intptr_t k);




  51 
  52 class ciBitData : public BitData {
  53 public:
  54   ciBitData(DataLayout* layout) : BitData(layout) {};
  55 };
  56 
  57 class ciCounterData : public CounterData {
  58 public:
  59   ciCounterData(DataLayout* layout) : CounterData(layout) {};
  60 };
  61 
  62 class ciJumpData : public JumpData {
  63 public:
  64   ciJumpData(DataLayout* layout) : JumpData(layout) {};
  65 };
  66 
  67 class ciTypeEntries {
  68 protected:
  69   static intptr_t translate_klass(intptr_t k) {
  70     Klass* v = TypeEntries::valid_klass(k);

  71     ciKlass* klass = CURRENT_ENV->get_klass(v);

  72     return with_status(klass, k);


  73   }
  74 
  75 public:
  76   static ciKlass* valid_ciklass(intptr_t k) {
  77     if (!TypeEntries::is_type_none(k) &&
  78         !TypeEntries::is_type_unknown(k)) {
  79       ciKlass* res = (ciKlass*)TypeEntries::klass_part(k);
  80       assert(res != NULL, "invalid");
  81       return res;
  82     } else {
  83       return NULL;
  84     }
  85   }
  86 
  87   static intptr_t with_status(ciKlass* k, intptr_t in) {
  88     return TypeEntries::with_status((intptr_t)k, in);
  89   }
  90 
  91 #ifndef PRODUCT
  92   static void print_ciklass(outputStream* st, intptr_t k);


< prev index next >