192 static int _oop_size_offset; 193 static int _static_oop_field_count_offset; 194 195 static int _protection_domain_offset; 196 static int _init_lock_offset; 197 static int _signers_offset; 198 static int _class_loader_offset; 199 static int _module_offset; 200 static int _component_mirror_offset; 201 202 static bool offsets_computed; 203 static int classRedefinedCount_offset; 204 205 static GrowableArray<Klass*>* _fixup_mirror_list; 206 static GrowableArray<Klass*>* _fixup_module_field_list; 207 208 static void set_init_lock(oop java_class, oop init_lock); 209 static void set_protection_domain(oop java_class, oop protection_domain); 210 static void set_class_loader(oop java_class, oop class_loader); 211 static void set_component_mirror(oop java_class, oop comp_mirror); 212 static void initialize_mirror_fields(KlassHandle k, Handle mirror, Handle protection_domain, TRAPS); 213 static void set_mirror_module_field(KlassHandle K, Handle mirror, Handle module, TRAPS); 214 public: 215 static void compute_offsets(); 216 217 // Instance creation 218 static void create_mirror(KlassHandle k, Handle class_loader, Handle module, 219 Handle protection_domain, TRAPS); 220 static void fixup_mirror(KlassHandle k, TRAPS); 221 static oop create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS); 222 223 static void fixup_module_field(KlassHandle k, Handle module); 224 225 // Conversion 226 static Klass* as_Klass(oop java_class); 227 static void set_klass(oop java_class, Klass* klass); 228 static BasicType as_BasicType(oop java_class, Klass** reference_klass = NULL); 229 static BasicType as_BasicType(oop java_class, KlassHandle* reference_klass) { 230 Klass* refk_oop = NULL; 231 BasicType result = as_BasicType(java_class, &refk_oop); 232 (*reference_klass) = KlassHandle(refk_oop); 233 return result; 234 } 235 static Symbol* as_signature(oop java_class, bool intern_if_not_found, TRAPS); 236 static void print_signature(oop java_class, outputStream *st); 237 static const char* as_external_name(oop java_class); 238 // Testing 239 static bool is_instance(oop obj); 240 241 static bool is_primitive(oop java_class); 242 static BasicType primitive_type(oop java_class); 243 static oop primitive_mirror(BasicType t); 244 // JVM_NewArray support 245 static Klass* array_klass(oop java_class); 246 static void set_array_klass(oop java_class, Klass* klass); 247 // compiler support for class operations 248 static int klass_offset_in_bytes() { return _klass_offset; } 249 static int array_klass_offset_in_bytes() { return _array_klass_offset; } 250 // Support for classRedefinedCount field 251 static int classRedefinedCount(oop the_class_mirror); 252 static void set_classRedefinedCount(oop the_class_mirror, int value); 253 254 // Support for embedded per-class oops | 192 static int _oop_size_offset; 193 static int _static_oop_field_count_offset; 194 195 static int _protection_domain_offset; 196 static int _init_lock_offset; 197 static int _signers_offset; 198 static int _class_loader_offset; 199 static int _module_offset; 200 static int _component_mirror_offset; 201 202 static bool offsets_computed; 203 static int classRedefinedCount_offset; 204 205 static GrowableArray<Klass*>* _fixup_mirror_list; 206 static GrowableArray<Klass*>* _fixup_module_field_list; 207 208 static void set_init_lock(oop java_class, oop init_lock); 209 static void set_protection_domain(oop java_class, oop protection_domain); 210 static void set_class_loader(oop java_class, oop class_loader); 211 static void set_component_mirror(oop java_class, oop comp_mirror); 212 static void initialize_mirror_fields(Klass* k, Handle mirror, Handle protection_domain, TRAPS); 213 static void set_mirror_module_field(Klass* K, Handle mirror, Handle module, TRAPS); 214 public: 215 static void compute_offsets(); 216 217 // Instance creation 218 static void create_mirror(Klass* k, Handle class_loader, Handle module, 219 Handle protection_domain, TRAPS); 220 static void fixup_mirror(Klass* k, TRAPS); 221 static oop create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS); 222 223 static void fixup_module_field(Klass* k, Handle module); 224 225 // Conversion 226 static Klass* as_Klass(oop java_class); 227 static void set_klass(oop java_class, Klass* klass); 228 static BasicType as_BasicType(oop java_class, Klass** reference_klass = NULL); 229 static Symbol* as_signature(oop java_class, bool intern_if_not_found, TRAPS); 230 static void print_signature(oop java_class, outputStream *st); 231 static const char* as_external_name(oop java_class); 232 // Testing 233 static bool is_instance(oop obj); 234 235 static bool is_primitive(oop java_class); 236 static BasicType primitive_type(oop java_class); 237 static oop primitive_mirror(BasicType t); 238 // JVM_NewArray support 239 static Klass* array_klass(oop java_class); 240 static void set_array_klass(oop java_class, Klass* klass); 241 // compiler support for class operations 242 static int klass_offset_in_bytes() { return _klass_offset; } 243 static int array_klass_offset_in_bytes() { return _array_klass_offset; } 244 // Support for classRedefinedCount field 245 static int classRedefinedCount(oop the_class_mirror); 246 static void set_classRedefinedCount(oop the_class_mirror, int value); 247 248 // Support for embedded per-class oops |