src/share/vm/classfile/classFileParser.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6705523 Cdiff src/share/vm/classfile/classFileParser.cpp

src/share/vm/classfile/classFileParser.cpp

Print this page
rev 148 : 6705523: Fix for 6695506 will violate spec when used in JDK6
Summary: Make max classfile version number dependent on JDK version
Reviewed-by:

*** 42,51 **** --- 42,52 ---- // - to check for bug fixes in the format checker in JDK1.5 #define JAVA_1_5_VERSION 49 // 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 void ClassFileParser::parse_constant_pool_entries(constantPoolHandle cp, int length, TRAPS) { // Use a local copy of ClassFileStream. It helps the C++ compiler to optimize
*** 3514,3526 **** (is_public && is_private) || (is_protected && is_private)); } bool ClassFileParser::is_supported_version(u2 major, u2 minor) { return (major >= JAVA_MIN_SUPPORTED_VERSION) && ! (major <= JAVA_MAX_SUPPORTED_VERSION) && ! ((major != JAVA_MAX_SUPPORTED_VERSION) || (minor <= JAVA_MAX_SUPPORTED_MINOR_VERSION)); } void ClassFileParser::verify_legal_field_modifiers( jint flags, bool is_interface, TRAPS) { --- 3515,3529 ---- (is_public && is_private) || (is_protected && is_private)); } 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 <= max_version) && ! ((major != max_version) || (minor <= JAVA_MAX_SUPPORTED_MINOR_VERSION)); } void ClassFileParser::verify_legal_field_modifiers( jint flags, bool is_interface, TRAPS) {
src/share/vm/classfile/classFileParser.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File