Mercurial > hg > graal-jvmci-8
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(); |