src/share/vm/ci/ciInstanceKlass.cpp

changeset 4037
da91efe96a93
parent 3701
49036505ab5f
child 4267
bd7a7ce2e264
     1.1 --- a/src/share/vm/ci/ciInstanceKlass.cpp	Fri Aug 31 16:39:35 2012 -0700
     1.2 +++ b/src/share/vm/ci/ciInstanceKlass.cpp	Sat Sep 01 13:25:18 2012 -0400
     1.3 @@ -36,8 +36,8 @@
     1.4  
     1.5  // ciInstanceKlass
     1.6  //
     1.7 -// This class represents a klassOop in the HotSpot virtual machine
     1.8 -// whose Klass part in an instanceKlass.
     1.9 +// This class represents a Klass* in the HotSpot virtual machine
    1.10 +// whose Klass part in an InstanceKlass.
    1.11  
    1.12  // ------------------------------------------------------------------
    1.13  // ciInstanceKlass::ciInstanceKlass
    1.14 @@ -48,7 +48,7 @@
    1.15  {
    1.16    assert(get_Klass()->oop_is_instance(), "wrong type");
    1.17    assert(get_instanceKlass()->is_loaded(), "must be at least loaded");
    1.18 -  instanceKlass* ik = get_instanceKlass();
    1.19 +  InstanceKlass* ik = get_instanceKlass();
    1.20  
    1.21    AccessFlags access_flags = ik->access_flags();
    1.22    _flags = ciFlags(access_flags);
    1.23 @@ -92,10 +92,10 @@
    1.24  // Version for unloaded classes:
    1.25  ciInstanceKlass::ciInstanceKlass(ciSymbol* name,
    1.26                                   jobject loader, jobject protection_domain)
    1.27 -  : ciKlass(name, ciInstanceKlassKlass::make())
    1.28 +  : ciKlass(name, T_OBJECT)
    1.29  {
    1.30    assert(name->byte_at(0) != '[', "not an instance klass");
    1.31 -  _init_state = (instanceKlass::ClassState)0;
    1.32 +  _init_state = (InstanceKlass::ClassState)0;
    1.33    _nonstatic_field_size = -1;
    1.34    _has_nonstatic_fields = false;
    1.35    _nonstatic_fields = NULL;
    1.36 @@ -113,7 +113,7 @@
    1.37  // ciInstanceKlass::compute_shared_is_initialized
    1.38  void ciInstanceKlass::compute_shared_init_state() {
    1.39    GUARDED_VM_ENTRY(
    1.40 -    instanceKlass* ik = get_instanceKlass();
    1.41 +    InstanceKlass* ik = get_instanceKlass();
    1.42      _init_state = ik->init_state();
    1.43    )
    1.44  }
    1.45 @@ -122,7 +122,7 @@
    1.46  // ciInstanceKlass::compute_shared_has_subklass
    1.47  bool ciInstanceKlass::compute_shared_has_subklass() {
    1.48    GUARDED_VM_ENTRY(
    1.49 -    instanceKlass* ik = get_instanceKlass();
    1.50 +    InstanceKlass* ik = get_instanceKlass();
    1.51      _has_subklass = ik->subklass() != NULL;
    1.52      return _has_subklass;
    1.53    )
    1.54 @@ -205,7 +205,7 @@
    1.55  // ciInstanceKlass::is_java_lang_Object
    1.56  //
    1.57  // Is this klass java.lang.Object?
    1.58 -bool ciInstanceKlass::is_java_lang_Object() {
    1.59 +bool ciInstanceKlass::is_java_lang_Object() const {
    1.60    return equals(CURRENT_ENV->Object_klass());
    1.61  }
    1.62  
    1.63 @@ -292,8 +292,8 @@
    1.64    assert(is_loaded(), "must be loaded");
    1.65    if (_super == NULL && !is_java_lang_Object()) {
    1.66      GUARDED_VM_ENTRY(
    1.67 -      klassOop super_klass = get_instanceKlass()->super();
    1.68 -      _super = CURRENT_ENV->get_object(super_klass)->as_instance_klass();
    1.69 +      Klass* super_klass = get_instanceKlass()->super();
    1.70 +      _super = CURRENT_ENV->get_instance_klass(super_klass);
    1.71      )
    1.72    }
    1.73    return _super;
    1.74 @@ -321,13 +321,13 @@
    1.75    if (!is_abstract())   return NULL; // Only applies to abstract classes.
    1.76    if (!has_subklass())  return NULL; // Must have at least one subklass.
    1.77    VM_ENTRY_MARK;
    1.78 -  instanceKlass* ik = get_instanceKlass();
    1.79 +  InstanceKlass* ik = get_instanceKlass();
    1.80    Klass* up = ik->up_cast_abstract();
    1.81 -  assert(up->oop_is_instance(), "must be instanceKlass");
    1.82 +  assert(up->oop_is_instance(), "must be InstanceKlass");
    1.83    if (ik == up) {
    1.84      return NULL;
    1.85    }
    1.86 -  return CURRENT_THREAD_ENV->get_object(up->as_klassOop())->as_instance_klass();
    1.87 +  return CURRENT_THREAD_ENV->get_instance_klass(up);
    1.88  }
    1.89  
    1.90  // ------------------------------------------------------------------
    1.91 @@ -354,7 +354,7 @@
    1.92      return NULL;
    1.93    }
    1.94    VM_ENTRY_MARK;
    1.95 -  instanceKlass* k = get_instanceKlass();
    1.96 +  InstanceKlass* k = get_instanceKlass();
    1.97    fieldDescriptor fd;
    1.98    if (!k->find_field_from_offset(field_offset, is_static, &fd)) {
    1.99      return NULL;
   1.100 @@ -367,9 +367,9 @@
   1.101  // ciInstanceKlass::get_field_by_name
   1.102  ciField* ciInstanceKlass::get_field_by_name(ciSymbol* name, ciSymbol* signature, bool is_static) {
   1.103    VM_ENTRY_MARK;
   1.104 -  instanceKlass* k = get_instanceKlass();
   1.105 +  InstanceKlass* k = get_instanceKlass();
   1.106    fieldDescriptor fd;
   1.107 -  klassOop def = k->find_field(name->get_symbol(), signature->get_symbol(), is_static, &fd);
   1.108 +  Klass* def = k->find_field(name->get_symbol(), signature->get_symbol(), is_static, &fd);
   1.109    if (def == NULL) {
   1.110      return NULL;
   1.111    }
   1.112 @@ -397,7 +397,7 @@
   1.113    if (_non_static_fields == NULL) {
   1.114      VM_ENTRY_MARK;
   1.115      ciEnv* curEnv = ciEnv::current();
   1.116 -    instanceKlass* ik = get_instanceKlass();
   1.117 +    InstanceKlass* ik = get_instanceKlass();
   1.118      int max_n_fields = ik->java_fields_count();
   1.119  
   1.120      Arena* arena = curEnv->arena();
   1.121 @@ -473,7 +473,7 @@
   1.122    Arena* arena = CURRENT_ENV->arena();
   1.123    int flen = 0;
   1.124    GrowableArray<ciField*>* fields = NULL;
   1.125 -  instanceKlass* k = get_instanceKlass();
   1.126 +  InstanceKlass* k = get_instanceKlass();
   1.127    for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
   1.128      if (fs.access_flags().is_static())  continue;
   1.129      flen += 1;
   1.130 @@ -494,7 +494,7 @@
   1.131    for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
   1.132      if (fs.access_flags().is_static())  continue;
   1.133      fieldDescriptor fd;
   1.134 -    fd.initialize(k->as_klassOop(), fs.index());
   1.135 +    fd.initialize(k, fs.index());
   1.136      ciField* field = new (arena) ciField(&fd);
   1.137      fields->append(field);
   1.138    }
   1.139 @@ -508,14 +508,14 @@
   1.140  // Find a method in this klass.
   1.141  ciMethod* ciInstanceKlass::find_method(ciSymbol* name, ciSymbol* signature) {
   1.142    VM_ENTRY_MARK;
   1.143 -  instanceKlass* k = get_instanceKlass();
   1.144 +  InstanceKlass* k = get_instanceKlass();
   1.145    Symbol* name_sym = name->get_symbol();
   1.146    Symbol* sig_sym= signature->get_symbol();
   1.147  
   1.148 -  methodOop m = k->find_method(name_sym, sig_sym);
   1.149 +  Method* m = k->find_method(name_sym, sig_sym);
   1.150    if (m == NULL)  return NULL;
   1.151  
   1.152 -  return CURRENT_THREAD_ENV->get_object(m)->as_method();
   1.153 +  return CURRENT_THREAD_ENV->get_method(m);
   1.154  }
   1.155  
   1.156  // ------------------------------------------------------------------
   1.157 @@ -535,7 +535,7 @@
   1.158  // Report an implementor of this interface.
   1.159  // Note that there are various races here, since my copy
   1.160  // of _nof_implementors might be out of date with respect
   1.161 -// to results returned by instanceKlass::implementor.
   1.162 +// to results returned by InstanceKlass::implementor.
   1.163  // This is OK, since any dependencies we decide to assert
   1.164  // will be checked later under the Compile_lock.
   1.165  ciInstanceKlass* ciInstanceKlass::implementor() {
   1.166 @@ -544,13 +544,13 @@
   1.167      // Go into the VM to fetch the implementor.
   1.168      {
   1.169        VM_ENTRY_MARK;
   1.170 -      klassOop k = get_instanceKlass()->implementor();
   1.171 +      Klass* k = get_instanceKlass()->implementor();
   1.172        if (k != NULL) {
   1.173 -        if (k == get_instanceKlass()->as_klassOop()) {
   1.174 +        if (k == get_instanceKlass()) {
   1.175            // More than one implementors. Use 'this' in this case.
   1.176            impl = this;
   1.177          } else {
   1.178 -          impl = CURRENT_THREAD_ENV->get_object(k)->as_instance_klass();
   1.179 +          impl = CURRENT_THREAD_ENV->get_instance_klass(k);
   1.180          }
   1.181        }
   1.182      }

mercurial