hotspot/src/share/vm/runtime/deoptimization.cpp
changeset 8076 96d498ec7ae1
parent 7913 dd096a83bdbb
child 8107 78e5bd944384
--- a/hotspot/src/share/vm/runtime/deoptimization.cpp	Thu Jan 27 13:42:28 2011 -0800
+++ b/hotspot/src/share/vm/runtime/deoptimization.cpp	Thu Jan 27 16:11:27 2011 -0800
@@ -396,7 +396,7 @@
     HandleMark hm;
     methodHandle method(thread, array->element(0)->method());
     Bytecode_invoke invoke = Bytecode_invoke_check(method, array->element(0)->bci());
-    return_type = invoke.is_valid() ? invoke.result_type(thread) : T_ILLEGAL;
+    return_type = invoke.is_valid() ? invoke.result_type() : T_ILLEGAL;
   }
 
   // Compute information for handling adapters and adjusting the frame size of the caller.
@@ -601,7 +601,7 @@
           cur_code == Bytecodes::_invokestatic  ||
           cur_code == Bytecodes::_invokeinterface) {
         Bytecode_invoke invoke(mh, iframe->interpreter_frame_bci());
-        symbolHandle signature(thread, invoke.signature());
+        Symbol* signature = invoke.signature();
         ArgumentSizeComputer asc(signature);
         cur_invoke_parameter_size = asc.size();
         if (cur_code != Bytecodes::_invokestatic) {
@@ -1156,7 +1156,7 @@
   if (!constant_pool->tag_at(index).is_symbol()) return;
 
   Handle class_loader (THREAD, instanceKlass::cast(constant_pool->pool_holder())->class_loader());
-  symbolHandle symbol (THREAD, constant_pool->symbol_at(index));
+  Symbol*  symbol  = constant_pool->symbol_at(index);
 
   // class name?
   if (symbol->byte_at(0) != '(') {
@@ -1166,10 +1166,10 @@
   }
 
   // then it must be a signature!
+  ResourceMark rm(THREAD);
   for (SignatureStream ss(symbol); !ss.is_done(); ss.next()) {
     if (ss.is_object()) {
-      symbolOop s = ss.as_symbol(CHECK);
-      symbolHandle class_name (THREAD, s);
+      Symbol* class_name = ss.as_symbol(CHECK);
       Handle protection_domain (THREAD, Klass::cast(constant_pool->pool_holder())->protection_domain());
       SystemDictionary::resolve_or_null(class_name, class_loader, protection_domain, CHECK);
     }
@@ -1246,19 +1246,17 @@
                          format_trap_request(buf, sizeof(buf), trap_request));
         nm->log_identity(xtty);
       }
-      symbolHandle class_name;
+      Symbol* class_name = NULL;
       bool unresolved = false;
       if (unloaded_class_index >= 0) {
         constantPoolHandle constants (THREAD, trap_method->constants());
         if (constants->tag_at(unloaded_class_index).is_unresolved_klass()) {
-          class_name = symbolHandle(THREAD,
-            constants->klass_name_at(unloaded_class_index));
+          class_name = constants->klass_name_at(unloaded_class_index);
           unresolved = true;
           if (xtty != NULL)
             xtty->print(" unresolved='1'");
         } else if (constants->tag_at(unloaded_class_index).is_symbol()) {
-          class_name = symbolHandle(THREAD,
-            constants->symbol_at(unloaded_class_index));
+          class_name = constants->symbol_at(unloaded_class_index);
         }
         if (xtty != NULL)
           xtty->name(class_name);
@@ -1294,7 +1292,7 @@
                    trap_reason_name(reason),
                    trap_action_name(action),
                    unloaded_class_index);
-        if (class_name.not_null()) {
+        if (class_name != NULL) {
           tty->print(unresolved ? " unresolved class: " : " symbol: ");
           class_name->print_symbol_on(tty);
         }