< prev index next >

src/share/vm/interpreter/linkResolver.cpp

Print this page




 207   case CallInfo::itable_call:
 208     assert(resolved_method()->method_holder()->verify_itable_index(_call_index), "");
 209     break;
 210   case CallInfo::unknown_kind:
 211     assert(call_kind() != CallInfo::unknown_kind, "CallInfo must be set");
 212     break;
 213   default:
 214     fatal("Unexpected call kind %d", call_kind());
 215   }
 216 }
 217 #endif //ASSERT
 218 
 219 #ifndef PRODUCT
 220 void CallInfo::print() {
 221   ResourceMark rm;
 222   const char* kindstr = "unknown";
 223   switch (_call_kind) {
 224   case direct_call: kindstr = "direct"; break;
 225   case vtable_call: kindstr = "vtable"; break;
 226   case itable_call: kindstr = "itable"; break;

 227   }
 228   tty->print_cr("Call %s@%d %s", kindstr, _call_index,
 229                 _resolved_method.is_null() ? "(none)" : _resolved_method->name_and_sig_as_C_string());
 230 }
 231 #endif
 232 
 233 //------------------------------------------------------------------------------------------------------------------------
 234 // Implementation of LinkInfo
 235 
 236 LinkInfo::LinkInfo(const constantPoolHandle& pool, int index, methodHandle current_method, TRAPS) {
 237    // resolve klass
 238   _resolved_klass = pool->klass_ref_at(index, CHECK);
 239 
 240   // Get name, signature, and static klass
 241   _name          = pool->name_ref_at(index);
 242   _signature     = pool->signature_ref_at(index);
 243   _tag           = pool->tag_ref_at(index);
 244   _current_klass = pool->pool_holder();
 245   _current_method = current_method;
 246 




 207   case CallInfo::itable_call:
 208     assert(resolved_method()->method_holder()->verify_itable_index(_call_index), "");
 209     break;
 210   case CallInfo::unknown_kind:
 211     assert(call_kind() != CallInfo::unknown_kind, "CallInfo must be set");
 212     break;
 213   default:
 214     fatal("Unexpected call kind %d", call_kind());
 215   }
 216 }
 217 #endif //ASSERT
 218 
 219 #ifndef PRODUCT
 220 void CallInfo::print() {
 221   ResourceMark rm;
 222   const char* kindstr = "unknown";
 223   switch (_call_kind) {
 224   case direct_call: kindstr = "direct"; break;
 225   case vtable_call: kindstr = "vtable"; break;
 226   case itable_call: kindstr = "itable"; break;
 227   default: break;
 228   }
 229   tty->print_cr("Call %s@%d %s", kindstr, _call_index,
 230                 _resolved_method.is_null() ? "(none)" : _resolved_method->name_and_sig_as_C_string());
 231 }
 232 #endif
 233 
 234 //------------------------------------------------------------------------------------------------------------------------
 235 // Implementation of LinkInfo
 236 
 237 LinkInfo::LinkInfo(const constantPoolHandle& pool, int index, methodHandle current_method, TRAPS) {
 238    // resolve klass
 239   _resolved_klass = pool->klass_ref_at(index, CHECK);
 240 
 241   // Get name, signature, and static klass
 242   _name          = pool->name_ref_at(index);
 243   _signature     = pool->signature_ref_at(index);
 244   _tag           = pool->tag_ref_at(index);
 245   _current_klass = pool->pool_holder();
 246   _current_method = current_method;
 247 


< prev index next >