137 int runtime_visible_annotations_length, 138 u1* runtime_invisible_annotations, 139 int runtime_invisible_annotations_length, TRAPS); 140 141 // Final setup 142 unsigned int compute_oop_map_count(instanceKlassHandle super, 143 unsigned int nonstatic_oop_count, 144 int first_nonstatic_oop_offset); 145 void fill_oop_maps(instanceKlassHandle k, 146 unsigned int nonstatic_oop_map_count, 147 int* nonstatic_oop_offsets, 148 unsigned int* nonstatic_oop_counts); 149 void set_precomputed_flags(instanceKlassHandle k); 150 objArrayHandle compute_transitive_interfaces(instanceKlassHandle super, 151 objArrayHandle local_ifs, TRAPS); 152 153 // Special handling for certain classes. 154 // Add the "discovered" field to java.lang.ref.Reference if 155 // it does not exist. 156 void java_lang_ref_Reference_fix_pre(typeArrayHandle* fields_ptr, 157 constantPoolHandle cp, FieldAllocationCount *fac_ptr, TRAPS); 158 // Adjust the field allocation counts for java.lang.Class to add 159 // fake fields. 160 void java_lang_Class_fix_pre(objArrayHandle* methods_ptr, 161 FieldAllocationCount *fac_ptr, TRAPS); 162 // Adjust the next_nonstatic_oop_offset to place the fake fields 163 // before any Java fields. 164 void java_lang_Class_fix_post(int* next_nonstatic_oop_offset); 165 // Adjust the field allocation counts for java.dyn.MethodHandle to add 166 // a fake address (void*) field. 167 void java_dyn_MethodHandle_fix_pre(constantPoolHandle cp, 168 typeArrayHandle fields, 169 FieldAllocationCount *fac_ptr, TRAPS); 170 171 // Format checker methods 172 void classfile_parse_error(const char* msg, TRAPS); 173 void classfile_parse_error(const char* msg, int index, TRAPS); 174 void classfile_parse_error(const char* msg, const char *name, TRAPS); 175 void classfile_parse_error(const char* msg, int index, const char *name, TRAPS); 176 inline void guarantee_property(bool b, const char* msg, TRAPS) { 177 if (!b) { classfile_parse_error(msg, CHECK); } 178 } 179 180 inline void assert_property(bool b, const char* msg, TRAPS) { 181 #ifdef ASSERT | 137 int runtime_visible_annotations_length, 138 u1* runtime_invisible_annotations, 139 int runtime_invisible_annotations_length, TRAPS); 140 141 // Final setup 142 unsigned int compute_oop_map_count(instanceKlassHandle super, 143 unsigned int nonstatic_oop_count, 144 int first_nonstatic_oop_offset); 145 void fill_oop_maps(instanceKlassHandle k, 146 unsigned int nonstatic_oop_map_count, 147 int* nonstatic_oop_offsets, 148 unsigned int* nonstatic_oop_counts); 149 void set_precomputed_flags(instanceKlassHandle k); 150 objArrayHandle compute_transitive_interfaces(instanceKlassHandle super, 151 objArrayHandle local_ifs, TRAPS); 152 153 // Special handling for certain classes. 154 // Add the "discovered" field to java.lang.ref.Reference if 155 // it does not exist. 156 void java_lang_ref_Reference_fix_pre(typeArrayHandle* fields_ptr, 157 constantPoolHandle cp, 158 FieldAllocationCount *fac_ptr, TRAPS); 159 // Adjust the field allocation counts for java.lang.Class to add 160 // fake fields. 161 void java_lang_Class_fix_pre(int* nonstatic_field_size, 162 FieldAllocationCount *fac_ptr); 163 // Adjust the next_nonstatic_oop_offset to place the fake fields 164 // before any Java fields. 165 void java_lang_Class_fix_post(int* next_nonstatic_oop_offset); 166 // Adjust the field allocation counts for java.dyn.MethodHandle to add 167 // a fake address (void*) field. 168 void java_dyn_MethodHandle_fix_pre(constantPoolHandle cp, 169 typeArrayHandle fields, 170 FieldAllocationCount *fac_ptr, TRAPS); 171 172 // Format checker methods 173 void classfile_parse_error(const char* msg, TRAPS); 174 void classfile_parse_error(const char* msg, int index, TRAPS); 175 void classfile_parse_error(const char* msg, const char *name, TRAPS); 176 void classfile_parse_error(const char* msg, int index, const char *name, TRAPS); 177 inline void guarantee_property(bool b, const char* msg, TRAPS) { 178 if (!b) { classfile_parse_error(msg, CHECK); } 179 } 180 181 inline void assert_property(bool b, const char* msg, TRAPS) { 182 #ifdef ASSERT |