6914206: change way of permission checking for generated MethodHandle adapters

Put generated MH adapter in InvokeDynamic/MethodHandle classes to be able to indentify them easily in the compiler.

Reviewed-by: kvn, never, jrose
This commit is contained in:
Christian Thalinger 2010-01-08 11:09:46 +01:00
parent 8da8433a6f
commit e5fb2ad1c4
11 changed files with 66 additions and 16 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -482,6 +482,11 @@ bool Reflection::can_relax_access_check_for(
under_host_klass(accessee_ik, accessor))
return true;
// Adapter frames can access anything.
if (MethodHandleCompiler::klass_is_method_handle_adapter_holder(accessor))
// This is an internal adapter frame from the MethodHandleCompiler.
return true;
if (RelaxAccessControlCheck ||
(accessor_ik->major_version() < JAVA_1_5_VERSION &&
accessee_ik->major_version() < JAVA_1_5_VERSION)) {