Mercurial > hg > truffle
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, |