< prev index next >

src/hotspot/share/classfile/javaClasses.hpp

Print this page

        

*** 249,258 **** --- 249,260 ---- static int _class_loader_offset; static int _module_offset; static int _component_mirror_offset; static int _name_offset; static int _source_file_offset; + static int _inline_mirror_offset; + static int _indirect_mirror_offset; static bool offsets_computed; static int classRedefinedCount_offset; static GrowableArray<Klass*>* _fixup_mirror_list;
*** 271,280 **** --- 273,283 ---- // Instance creation static void create_mirror(Klass* k, Handle class_loader, Handle module, Handle protection_domain, TRAPS); static void fixup_mirror(Klass* k, TRAPS); static oop create_basic_type_mirror(const char* basic_type_name, BasicType type, TRAPS); + static oop create_indirect_type_mirror(Klass* k, Handle mirror, TRAPS); // Archiving static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN; static void archive_basic_type_mirrors(TRAPS) NOT_CDS_JAVA_HEAP_RETURN; static oop archive_mirror(Klass* k, TRAPS) NOT_CDS_JAVA_HEAP_RETURN_(NULL);
*** 304,313 **** --- 307,318 ---- static Klass* array_klass_acquire(oop java_class); static void release_set_array_klass(oop java_class, Klass* klass); // compiler support for class operations static int klass_offset_in_bytes() { return _klass_offset; } static int array_klass_offset_in_bytes() { return _array_klass_offset; } + static int inline_mirror_offset_in_bytes() { return _inline_mirror_offset; } + static int component_mirror_offset_in_bytes() { return _component_mirror_offset; } // Support for classRedefinedCount field static int classRedefinedCount(oop the_class_mirror); static void set_classRedefinedCount(oop the_class_mirror, int value); // Support for embedded per-class oops
*** 319,328 **** --- 324,342 ---- static oop class_loader(oop java_class); static void set_module(oop java_class, oop module); static oop module(oop java_class); + static void set_indirect_type_mirror(oop java_class, oop mirror); + static oop indirect_type_mirror(oop java_class); + static bool is_indirect_type(oop java_class) { // Must match "Class.isIndirectType()" + return indirect_type_mirror(java_class) == NULL || oopDesc::equals(indirect_type_mirror(java_class), java_class); + } + + static void set_inline_type_mirror(oop java_class, oop mirror); + static oop inline_type_mirror(oop java_class); + static oop name(Handle java_class, TRAPS); static oop source_file(oop java_class); static void set_source_file(oop java_class, oop source_file);
*** 1119,1138 **** static bool is_method(oop obj); // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants): enum { ! MN_IS_METHOD = 0x00010000, // method (not constructor) ! MN_IS_CONSTRUCTOR = 0x00020000, // constructor ! MN_IS_FIELD = 0x00040000, // field ! MN_IS_TYPE = 0x00080000, // nested type ! MN_CALLER_SENSITIVE = 0x00100000, // @CallerSensitive annotation detected ! MN_REFERENCE_KIND_SHIFT = 24, // refKind ! MN_REFERENCE_KIND_MASK = 0x0F000000 >> MN_REFERENCE_KIND_SHIFT, // The SEARCH_* bits are not for MN.flags but for the matchFlags argument of MHN.getMembers: ! MN_SEARCH_SUPERCLASSES = 0x00100000, // walk super classes ! MN_SEARCH_INTERFACES = 0x00200000 // walk implemented interfaces }; // Accessors for code generation: static int clazz_offset_in_bytes() { return _clazz_offset; } static int type_offset_in_bytes() { return _type_offset; } --- 1133,1152 ---- static bool is_method(oop obj); // Relevant integer codes (keep these in synch. with MethodHandleNatives.Constants): enum { ! MN_IS_METHOD = 0x00010000, // method (not object constructor) ! MN_IS_OBJECT_CONSTRUCTOR = 0x00020000, // object constructor ! MN_IS_FIELD = 0x00040000, // field ! MN_IS_TYPE = 0x00080000, // nested type ! MN_CALLER_SENSITIVE = 0x00100000, // @CallerSensitive annotation detected ! MN_REFERENCE_KIND_SHIFT = 24, // refKind ! MN_REFERENCE_KIND_MASK = 0x0F000000 >> MN_REFERENCE_KIND_SHIFT, // The SEARCH_* bits are not for MN.flags but for the matchFlags argument of MHN.getMembers: ! MN_SEARCH_SUPERCLASSES = 0x00100000, // walk super classes ! MN_SEARCH_INTERFACES = 0x00200000 // walk implemented interfaces }; // Accessors for code generation: static int clazz_offset_in_bytes() { return _clazz_offset; } static int type_offset_in_bytes() { return _type_offset; }
< prev index next >