6705523: Fix for 6695506 will violate spec when used in JDK6

Make max classfile version number dependent on JDK version

Reviewed-by: acorn, never
This commit is contained in:
Keith McGuigan 2008-05-22 13:03:52 -04:00
parent 3d93819395
commit c966634470
3 changed files with 37 additions and 9 deletions

View file

@ -44,6 +44,7 @@
// Used for backward compatibility reasons:
// - to check for javac bug fixes that happened after 1.5
// - also used as the max version when running in jdk6
#define JAVA_6_VERSION 50
@ -3516,9 +3517,11 @@ bool ClassFileParser::has_illegal_visibility(jint flags) {
}
bool ClassFileParser::is_supported_version(u2 major, u2 minor) {
u2 max_version = JDK_Version::is_gte_jdk17x_version() ?
JAVA_MAX_SUPPORTED_VERSION : JAVA_6_VERSION;
return (major >= JAVA_MIN_SUPPORTED_VERSION) &&
(major <= JAVA_MAX_SUPPORTED_VERSION) &&
((major != JAVA_MAX_SUPPORTED_VERSION) ||
(major <= max_version) &&
((major != max_version) ||
(minor <= JAVA_MAX_SUPPORTED_MINOR_VERSION));
}