Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/reflection.cpp @ 10381:4552a7633a07
8015385: Remove RelaxAccessControlCheck for JDK 8 bytecodes
Summary: Check bytecode versions along with RelaxAccessControlCheck version
Reviewed-by: dholmes, acorn
author | hseigel |
---|---|
date | Mon, 03 Jun 2013 10:00:10 -0400 |
parents | efe8b7d64424 |
children | c1bd7b5bdc70 |
comparison
equal
deleted
inserted
replaced
10380:532c55335fb6 | 10381:4552a7633a07 |
---|---|
42 #include "runtime/reflection.hpp" | 42 #include "runtime/reflection.hpp" |
43 #include "runtime/reflectionUtils.hpp" | 43 #include "runtime/reflectionUtils.hpp" |
44 #include "runtime/signature.hpp" | 44 #include "runtime/signature.hpp" |
45 #include "runtime/vframe.hpp" | 45 #include "runtime/vframe.hpp" |
46 | 46 |
47 #define JAVA_1_5_VERSION 49 | |
48 | |
49 static void trace_class_resolution(Klass* to_class) { | 47 static void trace_class_resolution(Klass* to_class) { |
50 ResourceMark rm; | 48 ResourceMark rm; |
51 int line_number = -1; | 49 int line_number = -1; |
52 const char * source_file = NULL; | 50 const char * source_file = NULL; |
53 Klass* caller = NULL; | 51 Klass* caller = NULL; |
505 // because one is inside the other. | 503 // because one is inside the other. |
506 if (under_host_klass(accessor_ik, accessee) || | 504 if (under_host_klass(accessor_ik, accessee) || |
507 under_host_klass(accessee_ik, accessor)) | 505 under_host_klass(accessee_ik, accessor)) |
508 return true; | 506 return true; |
509 | 507 |
510 if (RelaxAccessControlCheck || | 508 if ((RelaxAccessControlCheck && |
511 (accessor_ik->major_version() < JAVA_1_5_VERSION && | 509 accessor_ik->major_version() < Verifier::NO_RELAX_ACCESS_CTRL_CHECK_VERSION && |
512 accessee_ik->major_version() < JAVA_1_5_VERSION)) { | 510 accessee_ik->major_version() < Verifier::NO_RELAX_ACCESS_CTRL_CHECK_VERSION) || |
511 (accessor_ik->major_version() < Verifier::STRICTER_ACCESS_CTRL_CHECK_VERSION && | |
512 accessee_ik->major_version() < Verifier::STRICTER_ACCESS_CTRL_CHECK_VERSION)) { | |
513 return classloader_only && | 513 return classloader_only && |
514 Verifier::relax_verify_for(accessor_ik->class_loader()) && | 514 Verifier::relax_verify_for(accessor_ik->class_loader()) && |
515 accessor_ik->protection_domain() == accessee_ik->protection_domain() && | 515 accessor_ik->protection_domain() == accessee_ik->protection_domain() && |
516 accessor_ik->class_loader() == accessee_ik->class_loader(); | 516 accessor_ik->class_loader() == accessee_ik->class_loader(); |
517 } else { | 517 } else { |