115 // - to disallow argument and require ACC_STATIC for <clinit> methods 116 #define JAVA_7_VERSION 51 117 118 // Extension method support. 119 #define JAVA_8_VERSION 52 120 121 #define JAVA_9_VERSION 53 122 123 #define JAVA_10_VERSION 54 124 125 #define JAVA_11_VERSION 55 126 127 #define JAVA_12_VERSION 56 128 129 #define JAVA_13_VERSION 57 130 131 #define JAVA_14_VERSION 58 132 133 #define JAVA_15_VERSION 59 134 135 void ClassFileParser::set_class_bad_constant_seen(short bad_constant) { 136 assert((bad_constant == JVM_CONSTANT_Module || 137 bad_constant == JVM_CONSTANT_Package) && _major_version >= JAVA_9_VERSION, 138 "Unexpected bad constant pool entry"); 139 if (_bad_constant_seen == 0) _bad_constant_seen = bad_constant; 140 } 141 142 void ClassFileParser::parse_constant_pool_entries(const ClassFileStream* const stream, 143 ConstantPool* cp, 144 const int length, 145 TRAPS) { 146 assert(stream != NULL, "invariant"); 147 assert(cp != NULL, "invariant"); 148 149 // Use a local copy of ClassFileStream. It helps the C++ compiler to optimize 150 // this function (_current can be allocated in a register, with scalar 151 // replacement of aggregates). The _current pointer is copied back to 152 // stream() when this function returns. DON'T call another method within 153 // this method that uses stream(). 154 const ClassFileStream cfs1 = *stream; | 115 // - to disallow argument and require ACC_STATIC for <clinit> methods 116 #define JAVA_7_VERSION 51 117 118 // Extension method support. 119 #define JAVA_8_VERSION 52 120 121 #define JAVA_9_VERSION 53 122 123 #define JAVA_10_VERSION 54 124 125 #define JAVA_11_VERSION 55 126 127 #define JAVA_12_VERSION 56 128 129 #define JAVA_13_VERSION 57 130 131 #define JAVA_14_VERSION 58 132 133 #define JAVA_15_VERSION 59 134 135 #define JAVA_16_VERSION 60 136 137 void ClassFileParser::set_class_bad_constant_seen(short bad_constant) { 138 assert((bad_constant == JVM_CONSTANT_Module || 139 bad_constant == JVM_CONSTANT_Package) && _major_version >= JAVA_9_VERSION, 140 "Unexpected bad constant pool entry"); 141 if (_bad_constant_seen == 0) _bad_constant_seen = bad_constant; 142 } 143 144 void ClassFileParser::parse_constant_pool_entries(const ClassFileStream* const stream, 145 ConstantPool* cp, 146 const int length, 147 TRAPS) { 148 assert(stream != NULL, "invariant"); 149 assert(cp != NULL, "invariant"); 150 151 // Use a local copy of ClassFileStream. It helps the C++ compiler to optimize 152 // this function (_current can be allocated in a register, with scalar 153 // replacement of aggregates). The _current pointer is copied back to 154 // stream() when this function returns. DON'T call another method within 155 // this method that uses stream(). 156 const ClassFileStream cfs1 = *stream; |