1.1 --- a/src/share/vm/prims/jni.cpp Thu Jan 27 13:42:28 2011 -0800 1.2 +++ b/src/share/vm/prims/jni.cpp Thu Jan 27 16:11:27 2011 -0800 1.3 @@ -40,7 +40,7 @@ 1.4 #include "oops/objArrayKlass.hpp" 1.5 #include "oops/objArrayOop.hpp" 1.6 #include "oops/oop.inline.hpp" 1.7 -#include "oops/symbolOop.hpp" 1.8 +#include "oops/symbol.hpp" 1.9 #include "oops/typeArrayKlass.hpp" 1.10 #include "oops/typeArrayOop.hpp" 1.11 #include "prims/jni.h" 1.12 @@ -338,16 +338,15 @@ 1.13 1.14 // Since exceptions can be thrown, class initialization can take place 1.15 // if name is NULL no check for class name in .class stream has to be made. 1.16 - symbolHandle class_name; 1.17 if (name != NULL) { 1.18 const int str_len = (int)strlen(name); 1.19 - if (str_len > symbolOopDesc::max_length()) { 1.20 + if (str_len > Symbol::max_length()) { 1.21 // It's impossible to create this class; the name cannot fit 1.22 // into the constant pool. 1.23 THROW_MSG_0(vmSymbols::java_lang_NoClassDefFoundError(), name); 1.24 } 1.25 - class_name = oopFactory::new_symbol_handle(name, str_len, CHECK_NULL); 1.26 } 1.27 + TempNewSymbol class_name = SymbolTable::new_symbol(name, THREAD); 1.28 1.29 ResourceMark rm(THREAD); 1.30 ClassFileStream st((u1*) buf, bufLen, NULL); 1.31 @@ -394,7 +393,7 @@ 1.32 1.33 // Sanity check the name: it cannot be null or larger than the maximum size 1.34 // name we can fit in the constant pool. 1.35 - if (name == NULL || (int)strlen(name) > symbolOopDesc::max_length()) { 1.36 + if (name == NULL || (int)strlen(name) > Symbol::max_length()) { 1.37 THROW_MSG_0(vmSymbols::java_lang_NoClassDefFoundError(), name); 1.38 } 1.39 1.40 @@ -411,8 +410,8 @@ 1.41 k->name() == vmSymbols::java_lang_ClassLoader_NativeLibrary()) { 1.42 JavaValue result(T_OBJECT); 1.43 JavaCalls::call_static(&result, k, 1.44 - vmSymbolHandles::getFromClass_name(), 1.45 - vmSymbolHandles::void_class_signature(), 1.46 + vmSymbols::getFromClass_name(), 1.47 + vmSymbols::void_class_signature(), 1.48 thread); 1.49 if (HAS_PENDING_EXCEPTION) { 1.50 Handle ex(thread, thread->pending_exception()); 1.51 @@ -430,7 +429,7 @@ 1.52 loader = Handle(THREAD, SystemDictionary::java_system_loader()); 1.53 } 1.54 1.55 - symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); 1.56 + TempNewSymbol sym = SymbolTable::new_symbol(name, CHECK_NULL); 1.57 result = find_class_from_class_loader(env, sym, true, loader, 1.58 protection_domain, true, thread); 1.59 1.60 @@ -609,7 +608,7 @@ 1.61 DT_RETURN_MARK(ThrowNew, jint, (const jint&)ret); 1.62 1.63 instanceKlass* k = instanceKlass::cast(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(clazz))); 1.64 - symbolHandle name = symbolHandle(THREAD, k->name()); 1.65 + Symbol* name = k->name(); 1.66 Handle class_loader (THREAD, k->class_loader()); 1.67 Handle protection_domain (THREAD, k->protection_domain()); 1.68 THROW_MSG_LOADER_(name, (char *)message, class_loader, protection_domain, JNI_OK); 1.69 @@ -663,8 +662,8 @@ 1.70 ex, 1.71 KlassHandle(THREAD, 1.72 SystemDictionary::Throwable_klass()), 1.73 - vmSymbolHandles::printStackTrace_name(), 1.74 - vmSymbolHandles::void_method_signature(), 1.75 + vmSymbols::printStackTrace_name(), 1.76 + vmSymbols::void_method_signature(), 1.77 THREAD); 1.78 // If an exception is thrown in the call it gets thrown away. Not much 1.79 // we can do with it. The native code that calls this, does not check 1.80 @@ -838,8 +837,7 @@ 1.81 virtual void get_double () = 0; 1.82 virtual void get_object () = 0; 1.83 1.84 - JNI_ArgumentPusher(Thread *thread, symbolOop signature) 1.85 - : SignatureIterator(thread, signature) { 1.86 + JNI_ArgumentPusher(Symbol* signature) : SignatureIterator(signature) { 1.87 this->_return_type = T_ILLEGAL; 1.88 _arguments = NULL; 1.89 } 1.90 @@ -895,12 +893,12 @@ 1.91 } 1.92 1.93 public: 1.94 - JNI_ArgumentPusherVaArg(Thread *thread, symbolOop signature, va_list rap) 1.95 - : JNI_ArgumentPusher(thread, signature) { 1.96 + JNI_ArgumentPusherVaArg(Symbol* signature, va_list rap) 1.97 + : JNI_ArgumentPusher(signature) { 1.98 set_ap(rap); 1.99 } 1.100 - JNI_ArgumentPusherVaArg(Thread *thread, jmethodID method_id, va_list rap) 1.101 - : JNI_ArgumentPusher(thread, JNIHandles::resolve_jmethod_id(method_id)->signature()) { 1.102 + JNI_ArgumentPusherVaArg(jmethodID method_id, va_list rap) 1.103 + : JNI_ArgumentPusher(JNIHandles::resolve_jmethod_id(method_id)->signature()) { 1.104 set_ap(rap); 1.105 } 1.106 1.107 @@ -966,12 +964,12 @@ 1.108 inline void set_ap(const jvalue *rap) { _ap = rap; } 1.109 1.110 public: 1.111 - JNI_ArgumentPusherArray(Thread *thread, symbolOop signature, const jvalue *rap) 1.112 - : JNI_ArgumentPusher(thread, signature) { 1.113 + JNI_ArgumentPusherArray(Symbol* signature, const jvalue *rap) 1.114 + : JNI_ArgumentPusher(signature) { 1.115 set_ap(rap); 1.116 } 1.117 - JNI_ArgumentPusherArray(Thread *thread, jmethodID method_id, const jvalue *rap) 1.118 - : JNI_ArgumentPusher(thread, JNIHandles::resolve_jmethod_id(method_id)->signature()) { 1.119 + JNI_ArgumentPusherArray(jmethodID method_id, const jvalue *rap) 1.120 + : JNI_ArgumentPusher(JNIHandles::resolve_jmethod_id(method_id)->signature()) { 1.121 set_ap(rap); 1.122 } 1.123 1.124 @@ -1038,8 +1036,8 @@ 1.125 KlassHandle recv_klass; // Default to NULL (use of ?: can confuse gcc) 1.126 if (recv.not_null()) recv_klass = KlassHandle(THREAD, recv->klass()); 1.127 KlassHandle spec_klass (THREAD, method->method_holder()); 1.128 - symbolHandle name (THREAD, method->name()); 1.129 - symbolHandle signature (THREAD, method->signature()); 1.130 + Symbol* name = method->name(); 1.131 + Symbol* signature = method->signature(); 1.132 CallInfo info; 1.133 LinkResolver::resolve_interface_call(info, recv, recv_klass, spec_klass, name, signature, KlassHandle(), false, true, CHECK_(methodHandle())); 1.134 return info.selected_method(); 1.135 @@ -1051,8 +1049,8 @@ 1.136 KlassHandle recv_klass; // Default to NULL (use of ?: can confuse gcc) 1.137 if (recv.not_null()) recv_klass = KlassHandle(THREAD, recv->klass()); 1.138 KlassHandle spec_klass (THREAD, method->method_holder()); 1.139 - symbolHandle name (THREAD, method->name()); 1.140 - symbolHandle signature (THREAD, method->signature()); 1.141 + Symbol* name = method->name(); 1.142 + Symbol* signature = method->signature(); 1.143 CallInfo info; 1.144 LinkResolver::resolve_virtual_call(info, recv, recv_klass, spec_klass, name, signature, KlassHandle(), false, true, CHECK_(methodHandle())); 1.145 return info.selected_method(); 1.146 @@ -1073,7 +1071,7 @@ 1.147 assert(method->is_static(), "method should be static"); 1.148 1.149 // Fill out JavaCallArguments object 1.150 - args->iterate( Fingerprinter(THREAD, method).fingerprint() ); 1.151 + args->iterate( Fingerprinter(method).fingerprint() ); 1.152 // Initialize result type 1.153 result->set_type(args->get_ret_type()); 1.154 1.155 @@ -1149,7 +1147,7 @@ 1.156 args->push_receiver(h_recv); // Push jobject handle 1.157 1.158 // Fill out JavaCallArguments object 1.159 - args->iterate( Fingerprinter(THREAD, method).fingerprint() ); 1.160 + args->iterate( Fingerprinter(method).fingerprint() ); 1.161 // Initialize result type 1.162 result->set_type(args->get_ret_type()); 1.163 1.164 @@ -1196,7 +1194,7 @@ 1.165 instanceOop i = alloc_object(clazz, CHECK_NULL); 1.166 obj = JNIHandles::make_local(env, i); 1.167 JavaValue jvalue(T_VOID); 1.168 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); 1.169 + JNI_ArgumentPusherArray ap(methodID, args); 1.170 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL); 1.171 return obj; 1.172 JNI_END 1.173 @@ -1212,7 +1210,7 @@ 1.174 instanceOop i = alloc_object(clazz, CHECK_NULL); 1.175 obj = JNIHandles::make_local(env, i); 1.176 JavaValue jvalue(T_VOID); 1.177 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.178 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.179 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL); 1.180 return obj; 1.181 JNI_END 1.182 @@ -1230,7 +1228,7 @@ 1.183 va_list args; 1.184 va_start(args, methodID); 1.185 JavaValue jvalue(T_VOID); 1.186 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.187 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.188 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_NULL); 1.189 va_end(args); 1.190 return obj; 1.191 @@ -1271,16 +1269,13 @@ 1.192 // The class should have been loaded (we have an instance of the class 1.193 // passed in) so the method and signature should already be in the symbol 1.194 // table. If they're not there, the method doesn't exist. 1.195 - symbolHandle signature = 1.196 - symbolHandle(THREAD, SymbolTable::probe(sig, (int)strlen(sig))); 1.197 - symbolHandle name; 1.198 - if (name_str == NULL) { 1.199 - name = vmSymbolHandles::object_initializer_name(); 1.200 - } else { 1.201 - name = symbolHandle(THREAD, 1.202 - SymbolTable::probe(name_str, (int)strlen(name_str))); 1.203 - } 1.204 - if (name.is_null() || signature.is_null()) { 1.205 + const char *name_to_probe = (name_str == NULL) 1.206 + ? vmSymbols::object_initializer_name()->as_C_string() 1.207 + : name_str; 1.208 + TempNewSymbol name = SymbolTable::probe(name_to_probe, (int)strlen(name_to_probe)); 1.209 + TempNewSymbol signature = SymbolTable::probe(sig, (int)strlen(sig)); 1.210 + 1.211 + if (name == NULL || signature == NULL) { 1.212 THROW_MSG_0(vmSymbols::java_lang_NoSuchMethodError(), name_str); 1.213 } 1.214 1.215 @@ -1298,20 +1293,20 @@ 1.216 Klass::cast(klass())->initialize(CHECK_NULL); 1.217 1.218 methodOop m; 1.219 - if (name() == vmSymbols::object_initializer_name() || 1.220 - name() == vmSymbols::class_initializer_name()) { 1.221 + if (name == vmSymbols::object_initializer_name() || 1.222 + name == vmSymbols::class_initializer_name()) { 1.223 // Never search superclasses for constructors 1.224 if (klass->oop_is_instance()) { 1.225 - m = instanceKlass::cast(klass())->find_method(name(), signature()); 1.226 + m = instanceKlass::cast(klass())->find_method(name, signature); 1.227 } else { 1.228 m = NULL; 1.229 } 1.230 } else { 1.231 - m = klass->lookup_method(name(), signature()); 1.232 + m = klass->lookup_method(name, signature); 1.233 // Look up interfaces 1.234 if (m == NULL && klass->oop_is_instance()) { 1.235 - m = instanceKlass::cast(klass())->lookup_method_in_all_interfaces(name(), 1.236 - signature()); 1.237 + m = instanceKlass::cast(klass())->lookup_method_in_all_interfaces(name, 1.238 + signature); 1.239 } 1.240 } 1.241 if (m == NULL || (m->is_static() != is_static)) { 1.242 @@ -1365,7 +1360,7 @@ 1.243 va_list args; \ 1.244 va_start(args, methodID); \ 1.245 JavaValue jvalue(Tag); \ 1.246 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.247 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.248 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0); \ 1.249 va_end(args); \ 1.250 ret = jvalue.get_##ResultType(); \ 1.251 @@ -1383,7 +1378,7 @@ 1.252 (const ResultType&)ret);\ 1.253 \ 1.254 JavaValue jvalue(Tag); \ 1.255 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.256 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.257 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0); \ 1.258 ret = jvalue.get_##ResultType(); \ 1.259 return ret;\ 1.260 @@ -1399,7 +1394,7 @@ 1.261 (const ResultType&)ret);\ 1.262 \ 1.263 JavaValue jvalue(Tag); \ 1.264 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); \ 1.265 + JNI_ArgumentPusherArray ap(methodID, args); \ 1.266 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK_0); \ 1.267 ret = jvalue.get_##ResultType(); \ 1.268 return ret;\ 1.269 @@ -1429,7 +1424,7 @@ 1.270 va_list args; 1.271 va_start(args, methodID); 1.272 JavaValue jvalue(T_VOID); 1.273 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.274 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.275 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK); 1.276 va_end(args); 1.277 JNI_END 1.278 @@ -1441,7 +1436,7 @@ 1.279 DT_VOID_RETURN_MARK(CallVoidMethodV); 1.280 1.281 JavaValue jvalue(T_VOID); 1.282 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.283 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.284 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK); 1.285 JNI_END 1.286 1.287 @@ -1452,7 +1447,7 @@ 1.288 DT_VOID_RETURN_MARK(CallVoidMethodA); 1.289 1.290 JavaValue jvalue(T_VOID); 1.291 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); 1.292 + JNI_ArgumentPusherArray ap(methodID, args); 1.293 jni_invoke_nonstatic(env, &jvalue, obj, JNI_VIRTUAL, methodID, &ap, CHECK); 1.294 JNI_END 1.295 1.296 @@ -1475,7 +1470,7 @@ 1.297 va_list args; \ 1.298 va_start(args, methodID); \ 1.299 JavaValue jvalue(Tag); \ 1.300 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.301 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.302 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0); \ 1.303 va_end(args); \ 1.304 ret = jvalue.get_##ResultType(); \ 1.305 @@ -1491,7 +1486,7 @@ 1.306 (const ResultType&)ret);\ 1.307 \ 1.308 JavaValue jvalue(Tag); \ 1.309 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.310 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.311 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0); \ 1.312 ret = jvalue.get_##ResultType(); \ 1.313 return ret;\ 1.314 @@ -1506,7 +1501,7 @@ 1.315 (const ResultType&)ret);\ 1.316 \ 1.317 JavaValue jvalue(Tag); \ 1.318 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); \ 1.319 + JNI_ArgumentPusherArray ap(methodID, args); \ 1.320 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK_0); \ 1.321 ret = jvalue.get_##ResultType(); \ 1.322 return ret;\ 1.323 @@ -1539,7 +1534,7 @@ 1.324 va_list args; 1.325 va_start(args, methodID); 1.326 JavaValue jvalue(T_VOID); 1.327 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.328 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.329 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK); 1.330 va_end(args); 1.331 JNI_END 1.332 @@ -1553,7 +1548,7 @@ 1.333 DT_VOID_RETURN_MARK(CallNonvirtualVoidMethodV); 1.334 1.335 JavaValue jvalue(T_VOID); 1.336 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.337 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.338 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK); 1.339 JNI_END 1.340 1.341 @@ -1564,7 +1559,7 @@ 1.342 env, obj, cls, methodID); 1.343 DT_VOID_RETURN_MARK(CallNonvirtualVoidMethodA); 1.344 JavaValue jvalue(T_VOID); 1.345 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); 1.346 + JNI_ArgumentPusherArray ap(methodID, args); 1.347 jni_invoke_nonstatic(env, &jvalue, obj, JNI_NONVIRTUAL, methodID, &ap, CHECK); 1.348 JNI_END 1.349 1.350 @@ -1587,7 +1582,7 @@ 1.351 va_list args; \ 1.352 va_start(args, methodID); \ 1.353 JavaValue jvalue(Tag); \ 1.354 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.355 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.356 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK_0); \ 1.357 va_end(args); \ 1.358 ret = jvalue.get_##ResultType(); \ 1.359 @@ -1603,7 +1598,7 @@ 1.360 (const ResultType&)ret);\ 1.361 \ 1.362 JavaValue jvalue(Tag); \ 1.363 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); \ 1.364 + JNI_ArgumentPusherVaArg ap(methodID, args); \ 1.365 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK_0); \ 1.366 ret = jvalue.get_##ResultType(); \ 1.367 return ret;\ 1.368 @@ -1618,7 +1613,7 @@ 1.369 (const ResultType&)ret);\ 1.370 \ 1.371 JavaValue jvalue(Tag); \ 1.372 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); \ 1.373 + JNI_ArgumentPusherArray ap(methodID, args); \ 1.374 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK_0); \ 1.375 ret = jvalue.get_##ResultType(); \ 1.376 return ret;\ 1.377 @@ -1649,7 +1644,7 @@ 1.378 va_list args; 1.379 va_start(args, methodID); 1.380 JavaValue jvalue(T_VOID); 1.381 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.382 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.383 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK); 1.384 va_end(args); 1.385 JNI_END 1.386 @@ -1661,7 +1656,7 @@ 1.387 DT_VOID_RETURN_MARK(CallStaticVoidMethodV); 1.388 1.389 JavaValue jvalue(T_VOID); 1.390 - JNI_ArgumentPusherVaArg ap(THREAD, methodID, args); 1.391 + JNI_ArgumentPusherVaArg ap(methodID, args); 1.392 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK); 1.393 JNI_END 1.394 1.395 @@ -1672,7 +1667,7 @@ 1.396 DT_VOID_RETURN_MARK(CallStaticVoidMethodA); 1.397 1.398 JavaValue jvalue(T_VOID); 1.399 - JNI_ArgumentPusherArray ap(THREAD, methodID, args); 1.400 + JNI_ArgumentPusherArray ap(methodID, args); 1.401 jni_invoke_static(env, &jvalue, NULL, JNI_STATIC, methodID, &ap, CHECK); 1.402 JNI_END 1.403 1.404 @@ -1694,11 +1689,9 @@ 1.405 // The class should have been loaded (we have an instance of the class 1.406 // passed in) so the field and signature should already be in the symbol 1.407 // table. If they're not there, the field doesn't exist. 1.408 - symbolHandle fieldname = 1.409 - symbolHandle(THREAD, SymbolTable::probe(name, (int)strlen(name))); 1.410 - symbolHandle signame = 1.411 - symbolHandle(THREAD, SymbolTable::probe(sig, (int)strlen(sig))); 1.412 - if (fieldname.is_null() || signame.is_null()) { 1.413 + TempNewSymbol fieldname = SymbolTable::probe(name, (int)strlen(name)); 1.414 + TempNewSymbol signame = SymbolTable::probe(sig, (int)strlen(sig)); 1.415 + if (fieldname == NULL || signame == NULL) { 1.416 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name); 1.417 } 1.418 KlassHandle k(THREAD, 1.419 @@ -1708,7 +1701,7 @@ 1.420 1.421 fieldDescriptor fd; 1.422 if (!Klass::cast(k())->oop_is_instance() || 1.423 - !instanceKlass::cast(k())->find_field(fieldname(), signame(), false, &fd)) { 1.424 + !instanceKlass::cast(k())->find_field(fieldname, signame, false, &fd)) { 1.425 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name); 1.426 } 1.427 1.428 @@ -1893,11 +1886,9 @@ 1.429 // The class should have been loaded (we have an instance of the class 1.430 // passed in) so the field and signature should already be in the symbol 1.431 // table. If they're not there, the field doesn't exist. 1.432 - symbolHandle fieldname = 1.433 - symbolHandle(THREAD, SymbolTable::probe(name, (int)strlen(name))); 1.434 - symbolHandle signame = 1.435 - symbolHandle(THREAD, SymbolTable::probe(sig, (int)strlen(sig))); 1.436 - if (fieldname.is_null() || signame.is_null()) { 1.437 + TempNewSymbol fieldname = SymbolTable::probe(name, (int)strlen(name)); 1.438 + TempNewSymbol signame = SymbolTable::probe(sig, (int)strlen(sig)); 1.439 + if (fieldname == NULL || signame == NULL) { 1.440 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name); 1.441 } 1.442 KlassHandle k(THREAD, 1.443 @@ -1907,7 +1898,7 @@ 1.444 1.445 fieldDescriptor fd; 1.446 if (!Klass::cast(k())->oop_is_instance() || 1.447 - !instanceKlass::cast(k())->find_field(fieldname(), signame(), true, &fd)) { 1.448 + !instanceKlass::cast(k())->find_field(fieldname, signame, true, &fd)) { 1.449 THROW_MSG_0(vmSymbols::java_lang_NoSuchFieldError(), (char*) name); 1.450 } 1.451 1.452 @@ -2389,7 +2380,7 @@ 1.453 // to see if the native method is now wrapped with the prefixes. See the 1.454 // SetNativeMethodPrefix(es) functions in the JVM TI Spec for details. 1.455 static methodOop find_prefixed_native(KlassHandle k, 1.456 - symbolHandle name, symbolHandle signature, TRAPS) { 1.457 + Symbol* name, Symbol* signature, TRAPS) { 1.458 ResourceMark rm(THREAD); 1.459 methodOop method; 1.460 int name_len = name->utf8_length(); 1.461 @@ -2405,11 +2396,11 @@ 1.462 char* trial_name_str = NEW_RESOURCE_ARRAY(char, trial_len + 1); 1.463 strcpy(trial_name_str, prefix); 1.464 strcat(trial_name_str, name_str); 1.465 - symbolHandle trial_name(THREAD, SymbolTable::probe(trial_name_str, trial_len)); 1.466 - if (trial_name.is_null()) { 1.467 + TempNewSymbol trial_name = SymbolTable::probe(trial_name_str, trial_len); 1.468 + if (trial_name == NULL) { 1.469 continue; // no such symbol, so this prefix wasn't used, try the next prefix 1.470 } 1.471 - method = Klass::cast(k())->lookup_method(trial_name(), signature()); 1.472 + method = Klass::cast(k())->lookup_method(trial_name, signature); 1.473 if (method == NULL) { 1.474 continue; // signature doesn't match, try the next prefix 1.475 } 1.476 @@ -2424,13 +2415,13 @@ 1.477 return NULL; // not found 1.478 } 1.479 1.480 -static bool register_native(KlassHandle k, symbolHandle name, symbolHandle signature, address entry, TRAPS) { 1.481 - methodOop method = Klass::cast(k())->lookup_method(name(), signature()); 1.482 +static bool register_native(KlassHandle k, Symbol* name, Symbol* signature, address entry, TRAPS) { 1.483 + methodOop method = Klass::cast(k())->lookup_method(name, signature); 1.484 if (method == NULL) { 1.485 ResourceMark rm; 1.486 stringStream st; 1.487 st.print("Method %s name or signature does not match", 1.488 - methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name(), signature())); 1.489 + methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name, signature)); 1.490 THROW_MSG_(vmSymbols::java_lang_NoSuchMethodError(), st.as_string(), false); 1.491 } 1.492 if (!method->is_native()) { 1.493 @@ -2440,7 +2431,7 @@ 1.494 ResourceMark rm; 1.495 stringStream st; 1.496 st.print("Method %s is not declared as native", 1.497 - methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name(), signature())); 1.498 + methodOopDesc::name_and_sig_as_C_string(Klass::cast(k()), name, signature)); 1.499 THROW_MSG_(vmSymbols::java_lang_NoSuchMethodError(), st.as_string(), false); 1.500 } 1.501 } 1.502 @@ -2480,10 +2471,10 @@ 1.503 // The class should have been loaded (we have an instance of the class 1.504 // passed in) so the method and signature should already be in the symbol 1.505 // table. If they're not there, the method doesn't exist. 1.506 - symbolHandle name(THREAD, SymbolTable::probe(meth_name, meth_name_len)); 1.507 - symbolHandle signature(THREAD, SymbolTable::probe(meth_sig, (int)strlen(meth_sig))); 1.508 - 1.509 - if (name.is_null() || signature.is_null()) { 1.510 + TempNewSymbol name = SymbolTable::probe(meth_name, meth_name_len); 1.511 + TempNewSymbol signature = SymbolTable::probe(meth_sig, (int)strlen(meth_sig)); 1.512 + 1.513 + if (name == NULL || signature == NULL) { 1.514 ResourceMark rm; 1.515 stringStream st; 1.516 st.print("Method %s.%s%s not found", Klass::cast(h_k())->external_name(), meth_name, meth_sig); 1.517 @@ -2717,7 +2708,7 @@ 1.518 Handle loader; // null (bootstrap) loader 1.519 Handle protection_domain; // null protection domain 1.520 1.521 - symbolHandle sym = oopFactory::new_symbol_handle(name, CHECK_NULL); 1.522 + TempNewSymbol sym = SymbolTable::new_symbol(name, CHECK_NULL); 1.523 jclass result = find_class_from_class_loader(env, sym, true, loader, protection_domain, true, CHECK_NULL); 1.524 1.525 if (TraceClassResolution && result != NULL) {