comparison src/share/vm/interpreter/linkResolver.cpp @ 22988:99edc344d77c

8062280: C2: inlining failure due to access checks being too strict Reviewed-by: kvn
author vlivanov
date Tue, 14 Apr 2015 18:11:06 +0300
parents 9906d432d6db
children 81bed6c76a89
comparison
equal deleted inserted replaced
22987:4eeec0cdeb6a 22988:99edc344d77c
1408 methodHandle LinkResolver::resolve_virtual_call_or_null( 1408 methodHandle LinkResolver::resolve_virtual_call_or_null(
1409 KlassHandle receiver_klass, 1409 KlassHandle receiver_klass,
1410 KlassHandle resolved_klass, 1410 KlassHandle resolved_klass,
1411 Symbol* name, 1411 Symbol* name,
1412 Symbol* signature, 1412 Symbol* signature,
1413 KlassHandle current_klass) { 1413 KlassHandle current_klass,
1414 bool check_access) {
1414 EXCEPTION_MARK; 1415 EXCEPTION_MARK;
1415 CallInfo info; 1416 CallInfo info;
1416 resolve_virtual_call(info, Handle(), receiver_klass, resolved_klass, name, signature, current_klass, true, false, THREAD); 1417 resolve_virtual_call(info, Handle(), receiver_klass, resolved_klass, name, signature, current_klass, check_access, false, THREAD);
1417 if (HAS_PENDING_EXCEPTION) { 1418 if (HAS_PENDING_EXCEPTION) {
1418 CLEAR_PENDING_EXCEPTION; 1419 CLEAR_PENDING_EXCEPTION;
1419 return methodHandle(); 1420 return methodHandle();
1420 } 1421 }
1421 return info.selected_method(); 1422 return info.selected_method();
1424 methodHandle LinkResolver::resolve_interface_call_or_null( 1425 methodHandle LinkResolver::resolve_interface_call_or_null(
1425 KlassHandle receiver_klass, 1426 KlassHandle receiver_klass,
1426 KlassHandle resolved_klass, 1427 KlassHandle resolved_klass,
1427 Symbol* name, 1428 Symbol* name,
1428 Symbol* signature, 1429 Symbol* signature,
1429 KlassHandle current_klass) { 1430 KlassHandle current_klass,
1431 bool check_access) {
1430 EXCEPTION_MARK; 1432 EXCEPTION_MARK;
1431 CallInfo info; 1433 CallInfo info;
1432 resolve_interface_call(info, Handle(), receiver_klass, resolved_klass, name, signature, current_klass, true, false, THREAD); 1434 resolve_interface_call(info, Handle(), receiver_klass, resolved_klass, name, signature, current_klass, check_access, false, THREAD);
1433 if (HAS_PENDING_EXCEPTION) { 1435 if (HAS_PENDING_EXCEPTION) {
1434 CLEAR_PENDING_EXCEPTION; 1436 CLEAR_PENDING_EXCEPTION;
1435 return methodHandle(); 1437 return methodHandle();
1436 } 1438 }
1437 return info.selected_method(); 1439 return info.selected_method();
1455 1457
1456 methodHandle LinkResolver::resolve_static_call_or_null( 1458 methodHandle LinkResolver::resolve_static_call_or_null(
1457 KlassHandle resolved_klass, 1459 KlassHandle resolved_klass,
1458 Symbol* name, 1460 Symbol* name,
1459 Symbol* signature, 1461 Symbol* signature,
1460 KlassHandle current_klass) { 1462 KlassHandle current_klass,
1463 bool check_access) {
1461 EXCEPTION_MARK; 1464 EXCEPTION_MARK;
1462 CallInfo info; 1465 CallInfo info;
1463 resolve_static_call(info, resolved_klass, name, signature, current_klass, true, false, THREAD); 1466 resolve_static_call(info, resolved_klass, name, signature, current_klass, check_access, false, THREAD);
1464 if (HAS_PENDING_EXCEPTION) { 1467 if (HAS_PENDING_EXCEPTION) {
1465 CLEAR_PENDING_EXCEPTION; 1468 CLEAR_PENDING_EXCEPTION;
1466 return methodHandle(); 1469 return methodHandle();
1467 } 1470 }
1468 return info.selected_method(); 1471 return info.selected_method();
1469 } 1472 }
1470 1473
1471 methodHandle LinkResolver::resolve_special_call_or_null(KlassHandle resolved_klass, Symbol* name, Symbol* signature, 1474 methodHandle LinkResolver::resolve_special_call_or_null(
1472 KlassHandle current_klass) { 1475 KlassHandle resolved_klass,
1476 Symbol* name,
1477 Symbol* signature,
1478 KlassHandle current_klass,
1479 bool check_access) {
1473 EXCEPTION_MARK; 1480 EXCEPTION_MARK;
1474 CallInfo info; 1481 CallInfo info;
1475 resolve_special_call(info, resolved_klass, name, signature, current_klass, true, THREAD); 1482 resolve_special_call(info, resolved_klass, name, signature, current_klass, check_access, THREAD);
1476 if (HAS_PENDING_EXCEPTION) { 1483 if (HAS_PENDING_EXCEPTION) {
1477 CLEAR_PENDING_EXCEPTION; 1484 CLEAR_PENDING_EXCEPTION;
1478 return methodHandle(); 1485 return methodHandle();
1479 } 1486 }
1480 return info.selected_method(); 1487 return info.selected_method();