comparison src/share/vm/interpreter/linkResolver.cpp @ 9082:d79859ff6535

8011952: Missing ResourceMarks in TraceMethodHandles Summary: add missing ResourceMark under TraceMethodHandles in LinkResolver Reviewed-by: dholmes
author kmo
date Thu, 11 Apr 2013 07:12:09 -0700
parents cd3089a56438
children 41ed397cc0cd
comparison
equal deleted inserted replaced
9081:84ab5667f290 9082:d79859ff6535
215 Handle *appendix_result_or_null, 215 Handle *appendix_result_or_null,
216 Handle *method_type_result, 216 Handle *method_type_result,
217 TRAPS) { 217 TRAPS) {
218 vmIntrinsics::ID iid = MethodHandles::signature_polymorphic_name_id(name); 218 vmIntrinsics::ID iid = MethodHandles::signature_polymorphic_name_id(name);
219 if (TraceMethodHandles) { 219 if (TraceMethodHandles) {
220 ResourceMark rm(THREAD);
220 tty->print_cr("lookup_polymorphic_method iid=%s %s.%s%s", 221 tty->print_cr("lookup_polymorphic_method iid=%s %s.%s%s",
221 vmIntrinsics::name_at(iid), klass->external_name(), 222 vmIntrinsics::name_at(iid), klass->external_name(),
222 name->as_C_string(), full_signature->as_C_string()); 223 name->as_C_string(), full_signature->as_C_string());
223 } 224 }
224 if (EnableInvokeDynamic && 225 if (EnableInvokeDynamic &&
229 // Do not erase last argument type (MemberName) if it is a static linkTo method. 230 // Do not erase last argument type (MemberName) if it is a static linkTo method.
230 bool keep_last_arg = MethodHandles::is_signature_polymorphic_static(iid); 231 bool keep_last_arg = MethodHandles::is_signature_polymorphic_static(iid);
231 TempNewSymbol basic_signature = 232 TempNewSymbol basic_signature =
232 MethodHandles::lookup_basic_type_signature(full_signature, keep_last_arg, CHECK); 233 MethodHandles::lookup_basic_type_signature(full_signature, keep_last_arg, CHECK);
233 if (TraceMethodHandles) { 234 if (TraceMethodHandles) {
235 ResourceMark rm(THREAD);
234 tty->print_cr("lookup_polymorphic_method %s %s => basic %s", 236 tty->print_cr("lookup_polymorphic_method %s %s => basic %s",
235 name->as_C_string(), 237 name->as_C_string(),
236 full_signature->as_C_string(), 238 full_signature->as_C_string(),
237 basic_signature->as_C_string()); 239 basic_signature->as_C_string());
238 } 240 }
281 if (appendix.is_null()) tty->print_cr("(none)"); 283 if (appendix.is_null()) tty->print_cr("(none)");
282 else appendix->print_on(tty); 284 else appendix->print_on(tty);
283 } 285 }
284 if (result.not_null()) { 286 if (result.not_null()) {
285 #ifdef ASSERT 287 #ifdef ASSERT
288 ResourceMark rm(THREAD);
289
286 TempNewSymbol basic_signature = 290 TempNewSymbol basic_signature =
287 MethodHandles::lookup_basic_type_signature(full_signature, CHECK); 291 MethodHandles::lookup_basic_type_signature(full_signature, CHECK);
288 int actual_size_of_params = result->size_of_parameters(); 292 int actual_size_of_params = result->size_of_parameters();
289 int expected_size_of_params = ArgumentSizeComputer(basic_signature).size(); 293 int expected_size_of_params = ArgumentSizeComputer(basic_signature).size();
290 // +1 for MethodHandle.this, +1 for trailing MethodType 294 // +1 for MethodHandle.this, +1 for trailing MethodType
1220 KlassHandle resolved_klass; 1224 KlassHandle resolved_klass;
1221 Symbol* method_name = NULL; 1225 Symbol* method_name = NULL;
1222 Symbol* method_signature = NULL; 1226 Symbol* method_signature = NULL;
1223 KlassHandle current_klass; 1227 KlassHandle current_klass;
1224 resolve_pool(resolved_klass, method_name, method_signature, current_klass, pool, index, CHECK); 1228 resolve_pool(resolved_klass, method_name, method_signature, current_klass, pool, index, CHECK);
1225 if (TraceMethodHandles) 1229 if (TraceMethodHandles) {
1230 ResourceMark rm(THREAD);
1226 tty->print_cr("resolve_invokehandle %s %s", method_name->as_C_string(), method_signature->as_C_string()); 1231 tty->print_cr("resolve_invokehandle %s %s", method_name->as_C_string(), method_signature->as_C_string());
1232 }
1227 resolve_handle_call(result, resolved_klass, method_name, method_signature, current_klass, CHECK); 1233 resolve_handle_call(result, resolved_klass, method_name, method_signature, current_klass, CHECK);
1228 } 1234 }
1229 1235
1230 void LinkResolver::resolve_handle_call(CallInfo& result, KlassHandle resolved_klass, 1236 void LinkResolver::resolve_handle_call(CallInfo& result, KlassHandle resolved_klass,
1231 Symbol* method_name, Symbol* method_signature, 1237 Symbol* method_name, Symbol* method_signature,