src/share/vm/runtime/reflection.cpp

changeset 2497
3582bf76420e
parent 2314
f95d63e2154a
child 2658
c7f3d0b4570f
     1.1 --- a/src/share/vm/runtime/reflection.cpp	Thu Jan 27 13:42:28 2011 -0800
     1.2 +++ b/src/share/vm/runtime/reflection.cpp	Thu Jan 27 16:11:27 2011 -0800
     1.3 @@ -64,7 +64,7 @@
     1.4        // this frame is a likely suspect
     1.5        caller = vfst.method()->method_holder();
     1.6        line_number = vfst.method()->line_number_from_bci(vfst.bci());
     1.7 -      symbolOop s = instanceKlass::cast(vfst.method()->method_holder())->source_file_name();
     1.8 +      Symbol* s = instanceKlass::cast(vfst.method()->method_holder())->source_file_name();
     1.9        if (s != NULL) {
    1.10          source_file = s->as_C_string();
    1.11        }
    1.12 @@ -622,7 +622,7 @@
    1.13    ResourceMark rm(THREAD);
    1.14    Exceptions::fthrow(
    1.15      THREAD_AND_LOCATION,
    1.16 -    vmSymbolHandles::java_lang_IncompatibleClassChangeError(),
    1.17 +    vmSymbols::java_lang_IncompatibleClassChangeError(),
    1.18      "%s and %s disagree on InnerClasses attribute",
    1.19      outer->external_name(),
    1.20      inner->external_name()
    1.21 @@ -638,11 +638,11 @@
    1.22        return java_lang_Class::primitive_mirror(ss->type());
    1.23      case T_OBJECT:
    1.24      case T_ARRAY:
    1.25 -      symbolOop name        = ss->as_symbol(CHECK_NULL);
    1.26 +      Symbol* name        = ss->as_symbol(CHECK_NULL);
    1.27        oop loader            = instanceKlass::cast(method->method_holder())->class_loader();
    1.28        oop protection_domain = instanceKlass::cast(method->method_holder())->protection_domain();
    1.29        klassOop k = SystemDictionary::resolve_or_fail(
    1.30 -                                       symbolHandle(THREAD, name),
    1.31 +                                       name,
    1.32                                         Handle(THREAD, loader),
    1.33                                         Handle(THREAD, protection_domain),
    1.34                                         true, CHECK_NULL);
    1.35 @@ -660,7 +660,8 @@
    1.36    objArrayHandle mirrors (THREAD, m);
    1.37    int index = 0;
    1.38    // Collect parameter types
    1.39 -  symbolHandle signature (THREAD, method->signature());
    1.40 +  ResourceMark rm(THREAD);
    1.41 +  Symbol*  signature  = method->signature();
    1.42    SignatureStream ss(signature);
    1.43    while (!ss.at_return_type()) {
    1.44      oop mirror = get_mirror_from_signature(method, &ss, CHECK_(objArrayHandle()));
    1.45 @@ -681,9 +682,9 @@
    1.46  }
    1.47  
    1.48  
    1.49 -Handle Reflection::new_type(symbolHandle signature, KlassHandle k, TRAPS) {
    1.50 +Handle Reflection::new_type(Symbol* signature, KlassHandle k, TRAPS) {
    1.51    // Basic types
    1.52 -  BasicType type = vmSymbols::signature_type(signature());
    1.53 +  BasicType type = vmSymbols::signature_type(signature);
    1.54    if (type != T_OBJECT) {
    1.55      return Handle(THREAD, Universe::java_mirror(type));
    1.56    }
    1.57 @@ -714,7 +715,7 @@
    1.58    instanceKlassHandle holder (THREAD, method->method_holder());
    1.59    int slot = method->method_idnum();
    1.60  
    1.61 -  symbolHandle signature (THREAD, method->signature());
    1.62 +  Symbol*  signature  = method->signature();
    1.63    int parameter_count = ArgumentCount(signature).size();
    1.64    oop return_type_oop = NULL;
    1.65    objArrayHandle parameter_types = get_parameter_types(method, parameter_count, &return_type_oop, CHECK_NULL);
    1.66 @@ -726,16 +727,16 @@
    1.67  
    1.68    if (exception_types.is_null()) return NULL;
    1.69  
    1.70 -  symbolHandle method_name(THREAD, method->name());
    1.71 +  Symbol*  method_name = method->name();
    1.72    Handle name;
    1.73    if (intern_name) {
    1.74      // intern_name is only true with UseNewReflection
    1.75 -    oop name_oop = StringTable::intern(method_name(), CHECK_NULL);
    1.76 +    oop name_oop = StringTable::intern(method_name, CHECK_NULL);
    1.77      name = Handle(THREAD, name_oop);
    1.78    } else {
    1.79      name = java_lang_String::create_from_symbol(method_name, CHECK_NULL);
    1.80    }
    1.81 -  if (name.is_null()) return NULL;
    1.82 +  if (name == NULL) return NULL;
    1.83  
    1.84    int modifiers = method->access_flags().as_int() & JVM_RECOGNIZED_METHOD_MODIFIERS;
    1.85  
    1.86 @@ -751,7 +752,7 @@
    1.87    java_lang_reflect_Method::set_override(mh(), false);
    1.88    if (java_lang_reflect_Method::has_signature_field() &&
    1.89        method->generic_signature() != NULL) {
    1.90 -    symbolHandle gs(THREAD, method->generic_signature());
    1.91 +    Symbol*  gs = method->generic_signature();
    1.92      Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
    1.93      java_lang_reflect_Method::set_signature(mh(), sig());
    1.94    }
    1.95 @@ -774,7 +775,7 @@
    1.96    instanceKlassHandle  holder (THREAD, method->method_holder());
    1.97    int slot = method->method_idnum();
    1.98  
    1.99 -  symbolHandle signature (THREAD, method->signature());
   1.100 +  Symbol*  signature  = method->signature();
   1.101    int parameter_count = ArgumentCount(signature).size();
   1.102    objArrayHandle parameter_types = get_parameter_types(method, parameter_count, NULL, CHECK_NULL);
   1.103    if (parameter_types.is_null()) return NULL;
   1.104 @@ -794,7 +795,7 @@
   1.105    java_lang_reflect_Constructor::set_override(ch(), false);
   1.106    if (java_lang_reflect_Constructor::has_signature_field() &&
   1.107        method->generic_signature() != NULL) {
   1.108 -    symbolHandle gs(THREAD, method->generic_signature());
   1.109 +    Symbol*  gs = method->generic_signature();
   1.110      Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
   1.111      java_lang_reflect_Constructor::set_signature(ch(), sig());
   1.112    }
   1.113 @@ -809,16 +810,16 @@
   1.114  
   1.115  
   1.116  oop Reflection::new_field(fieldDescriptor* fd, bool intern_name, TRAPS) {
   1.117 -  symbolHandle field_name(THREAD, fd->name());
   1.118 +  Symbol*  field_name = fd->name();
   1.119    Handle name;
   1.120    if (intern_name) {
   1.121      // intern_name is only true with UseNewReflection
   1.122 -    oop name_oop = StringTable::intern(field_name(), CHECK_NULL);
   1.123 +    oop name_oop = StringTable::intern(field_name, CHECK_NULL);
   1.124      name = Handle(THREAD, name_oop);
   1.125    } else {
   1.126      name = java_lang_String::create_from_symbol(field_name, CHECK_NULL);
   1.127    }
   1.128 -  symbolHandle signature (THREAD, fd->signature());
   1.129 +  Symbol*  signature  = fd->signature();
   1.130    KlassHandle  holder    (THREAD, fd->field_holder());
   1.131    Handle type = new_type(signature, holder, CHECK_NULL);
   1.132    Handle rh  = java_lang_reflect_Field::create(CHECK_NULL);
   1.133 @@ -832,7 +833,7 @@
   1.134    java_lang_reflect_Field::set_override(rh(), false);
   1.135    if (java_lang_reflect_Field::has_signature_field() &&
   1.136        fd->generic_signature() != NULL) {
   1.137 -    symbolHandle gs(THREAD, fd->generic_signature());
   1.138 +    Symbol*  gs = fd->generic_signature();
   1.139      Handle sig = java_lang_String::create_from_symbol(gs, CHECK_NULL);
   1.140      java_lang_reflect_Field::set_signature(rh(), sig());
   1.141    }
   1.142 @@ -858,8 +859,8 @@
   1.143    assert(!method.is_null() , "method should not be null");
   1.144  
   1.145    CallInfo info;
   1.146 -  symbolHandle signature (THREAD, method->signature());
   1.147 -  symbolHandle name      (THREAD, method->name());
   1.148 +  Symbol*  signature  = method->signature();
   1.149 +  Symbol*  name       = method->name();
   1.150    LinkResolver::resolve_interface_call(info, receiver, recv_klass, klass,
   1.151                                         name, signature,
   1.152                                         KlassHandle(), false, true,
   1.153 @@ -912,8 +913,8 @@
   1.154              oop resolution_exception = PENDING_EXCEPTION;
   1.155              CLEAR_PENDING_EXCEPTION;
   1.156              JavaCallArguments args(Handle(THREAD, resolution_exception));
   1.157 -            THROW_ARG_0(vmSymbolHandles::java_lang_reflect_InvocationTargetException(),
   1.158 -                vmSymbolHandles::throwable_void_signature(),
   1.159 +            THROW_ARG_0(vmSymbols::java_lang_reflect_InvocationTargetException(),
   1.160 +                vmSymbols::throwable_void_signature(),
   1.161                  &args);
   1.162            }
   1.163          } else {
   1.164 @@ -941,8 +942,8 @@
   1.165                       method->name(),
   1.166                       method->signature()));
   1.167                JavaCallArguments args(h_origexception);
   1.168 -              THROW_ARG_0(vmSymbolHandles::java_lang_reflect_InvocationTargetException(),
   1.169 -                vmSymbolHandles::throwable_void_signature(),
   1.170 +              THROW_ARG_0(vmSymbols::java_lang_reflect_InvocationTargetException(),
   1.171 +                vmSymbols::throwable_void_signature(),
   1.172                  &args);
   1.173              } else {
   1.174                ResourceMark rm(THREAD);
   1.175 @@ -1043,8 +1044,8 @@
   1.176      oop target_exception = PENDING_EXCEPTION;
   1.177      CLEAR_PENDING_EXCEPTION;
   1.178      JavaCallArguments args(Handle(THREAD, target_exception));
   1.179 -    THROW_ARG_0(vmSymbolHandles::java_lang_reflect_InvocationTargetException(),
   1.180 -                vmSymbolHandles::throwable_void_signature(),
   1.181 +    THROW_ARG_0(vmSymbols::java_lang_reflect_InvocationTargetException(),
   1.182 +                vmSymbols::throwable_void_signature(),
   1.183                  &args);
   1.184    } else {
   1.185      if (rtype == T_BOOLEAN || rtype == T_BYTE || rtype == T_CHAR || rtype == T_SHORT)
   1.186 @@ -1097,9 +1098,9 @@
   1.187  
   1.188  
   1.189  oop Reflection::new_field(FieldStream* st, TRAPS) {
   1.190 -  symbolHandle field_name(THREAD, st->name());
   1.191 +  Symbol*  field_name = st->name();
   1.192    Handle name = java_lang_String::create_from_symbol(field_name, CHECK_NULL);
   1.193 -  symbolHandle signature(THREAD, st->signature());
   1.194 +  Symbol*  signature = st->signature();
   1.195    Handle type = new_type(signature, st->klass(), CHECK_NULL);
   1.196    Handle rh  = java_lang_reflect_Field::create(CHECK_NULL);
   1.197    oop result = rh();
   1.198 @@ -1242,7 +1243,7 @@
   1.199      case T_ARRAY: {
   1.200        Handle obj(THREAD, (oop) value->l);
   1.201        if (obj.not_null()) {
   1.202 -        symbolHandle signature(THREAD, fd->signature());
   1.203 +        Symbol*  signature = fd->signature();
   1.204          Handle       loader   (THREAD, fd->loader());
   1.205          Handle       protect  (THREAD, Klass::cast(fd->field_holder())->protection_domain());
   1.206          klassOop k = SystemDictionary::resolve_or_fail(signature, loader, protect, true, CHECK); // may block
   1.207 @@ -1259,7 +1260,7 @@
   1.208  }
   1.209  
   1.210  
   1.211 -oop Reflection::reflect_field(oop mirror, symbolOop field_name, jint which, TRAPS) {
   1.212 +oop Reflection::reflect_field(oop mirror, Symbol* field_name, jint which, TRAPS) {
   1.213    // Exclude primitive types and array types
   1.214    if (java_lang_Class::is_primitive(mirror))                             return NULL;
   1.215    if (Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) return NULL;
   1.216 @@ -1287,7 +1288,7 @@
   1.217    // Exclude primitive types and array types
   1.218    if (java_lang_Class::is_primitive(mirror)
   1.219        || Klass::cast(java_lang_Class::as_klassOop(mirror))->oop_is_array()) {
   1.220 -    symbolHandle name = vmSymbolHandles::java_lang_reflect_Field();
   1.221 +    Symbol* name = vmSymbols::java_lang_reflect_Field();
   1.222      klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
   1.223      return oopFactory::new_objArray(klass, 0, CHECK_NULL);  // Return empty array
   1.224    }
   1.225 @@ -1308,7 +1309,7 @@
   1.226    }
   1.227  
   1.228    // Allocate result
   1.229 -  symbolHandle name = vmSymbolHandles::java_lang_reflect_Field();
   1.230 +  Symbol* name = vmSymbols::java_lang_reflect_Field();
   1.231    klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
   1.232    objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
   1.233    objArrayHandle result (THREAD, r);
   1.234 @@ -1327,7 +1328,7 @@
   1.235  }
   1.236  
   1.237  
   1.238 -oop Reflection::reflect_method(oop mirror, symbolHandle method_name, objArrayHandle types, jint which, TRAPS) {
   1.239 +oop Reflection::reflect_method(oop mirror, Symbol* method_name, objArrayHandle types, jint which, TRAPS) {
   1.240    if (java_lang_Class::is_primitive(mirror))  return NULL;
   1.241    klassOop klass = java_lang_Class::as_klassOop(mirror);
   1.242    if (Klass::cast(klass)->oop_is_array() && which == MEMBER_DECLARED)  return NULL;
   1.243 @@ -1351,8 +1352,8 @@
   1.244          for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
   1.245            methodHandle m(THREAD, st.method());
   1.246            // For interfaces include static initializers since classic does that!
   1.247 -          if (method_name() == m->name() && (include_clinit || (m->is_public() && !m->is_static() && !m->is_initializer()))) {
   1.248 -            symbolHandle signature(THREAD, m->signature());
   1.249 +          if (method_name == m->name() && (include_clinit || (m->is_public() && !m->is_static() && !m->is_initializer()))) {
   1.250 +            Symbol*  signature = m->signature();
   1.251              bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
   1.252              if (parameter_match) {
   1.253                return new_method(m, false, false, THREAD);
   1.254 @@ -1364,8 +1365,8 @@
   1.255        {
   1.256          for (MethodStream st(h_k, false, false); !st.eos(); st.next()) {
   1.257            methodHandle m(THREAD, st.method());
   1.258 -          if (method_name() == m->name() && m->is_public() && m->is_static() && !m->is_initializer()) {
   1.259 -            symbolHandle signature(THREAD, m->signature());
   1.260 +          if (method_name == m->name() && m->is_public() && m->is_static() && !m->is_initializer()) {
   1.261 +            Symbol*  signature = m->signature();
   1.262              bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
   1.263              if (parameter_match) {
   1.264                return new_method(m, false, false, THREAD);
   1.265 @@ -1379,8 +1380,8 @@
   1.266        {
   1.267          for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
   1.268            methodHandle m(THREAD, st.method());
   1.269 -          if (method_name() == m->name() && !m->is_initializer()) {
   1.270 -            symbolHandle signature(THREAD, m->signature());
   1.271 +          if (method_name == m->name() && !m->is_initializer()) {
   1.272 +            Symbol*  signature = m->signature();
   1.273              bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
   1.274              if (parameter_match) {
   1.275                return new_method(m, false, false, THREAD);
   1.276 @@ -1531,7 +1532,7 @@
   1.277    for (MethodStream st(h_k, true, true); !st.eos(); st.next()) {
   1.278      methodHandle m(THREAD, st.method());
   1.279      if (m->name() == vmSymbols::object_initializer_name() && (local_only || m->is_public())) {
   1.280 -      symbolHandle signature(THREAD, m->signature());
   1.281 +      Symbol*  signature = m->signature();
   1.282        bool parameter_match = match_parameter_types(m, types, ArgumentCount(signature).size(), CHECK_NULL);
   1.283        if (parameter_match) {
   1.284          return new_constructor(m, THREAD);
   1.285 @@ -1569,7 +1570,7 @@
   1.286    }
   1.287  
   1.288    // Allocate result
   1.289 -  symbolHandle name = vmSymbolHandles::java_lang_reflect_Constructor();
   1.290 +  Symbol* name = vmSymbols::java_lang_reflect_Constructor();
   1.291    klassOop klass = SystemDictionary::resolve_or_fail(name, true, CHECK_NULL);
   1.292    objArrayOop r = oopFactory::new_objArray(klass, count, CHECK_NULL);
   1.293    objArrayHandle h_result (THREAD, r);

mercurial