comparison src/share/vm/runtime/reflection.hpp @ 665:c89f86385056

6814659: separable cleanups and subroutines for 6655638 Summary: preparatory but separable changes for method handles Reviewed-by: kvn, never
author jrose
date Fri, 20 Mar 2009 23:19:36 -0700
parents a61af66fc99e
children c18cbe5936b8
comparison
equal deleted inserted replaced
647:bd441136a5ce 665:c89f86385056
1 /* 1 /*
2 * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
85 klassOop field_class, 85 klassOop field_class,
86 AccessFlags access, 86 AccessFlags access,
87 bool classloader_only, 87 bool classloader_only,
88 bool protected_restriction = false); 88 bool protected_restriction = false);
89 static bool is_same_class_package(klassOop class1, klassOop class2); 89 static bool is_same_class_package(klassOop class1, klassOop class2);
90 static bool is_same_package_member(klassOop class1, klassOop class2, TRAPS);
90 91
91 static bool can_relax_access_check_for( 92 static bool can_relax_access_check_for(
92 klassOop accessor, klassOop accesee, bool classloader_only); 93 klassOop accessor, klassOop accesee, bool classloader_only);
93 94
94 // inner class reflection 95 // inner class reflection
95 static void check_for_inner_class(instanceKlassHandle outer, instanceKlassHandle inner, TRAPS); 96 // raise an ICCE unless the required relationship can be proven to hold
97 // If inner_is_member, require the inner to be a member of the outer.
98 // If !inner_is_member, require the inner to be anonymous (a non-member).
99 // Caller is responsible for figuring out in advance which case must be true.
100 static void check_for_inner_class(instanceKlassHandle outer, instanceKlassHandle inner,
101 bool inner_is_member, TRAPS);
96 102
97 // 103 //
98 // Support for reflection based on dynamic bytecode generation (JDK 1.4) 104 // Support for reflection based on dynamic bytecode generation (JDK 1.4)
99 // 105 //
100 106