51 flag(is_shared_platform_class , 1 << 8) /* defining class loader is platform class loader */ \
52 flag(is_shared_app_class , 1 << 9) /* defining class loader is app class loader */ \
53 flag(has_contended_annotations , 1 << 10) /* has @Contended annotation */ \
54 flag(has_localvariable_table , 1 << 11) /* has localvariable information */ \
55 flag(has_miranda_methods , 1 << 12) /* True if this class has miranda methods in it's vtable */ \
56 flag(has_final_method , 1 << 13) /* True if klass has final method */ \
57 /* end of list */
58
59 #define IK_FLAGS_ENUM_NAME(name, value) _misc_##name = value,
60 enum {
61 IK_FLAGS_DO(IK_FLAGS_ENUM_NAME)
62 };
63 #undef IK_FLAGS_ENUM_NAME
64
65 #define IK_STATUS_DO(status) \
66 status(is_being_redefined , 1 << 0) /* True if the klass is being redefined */ \
67 status(has_resolved_methods , 1 << 1) /* True if the klass has resolved MethodHandle methods */ \
68 status(has_been_redefined , 1 << 2) /* class has been redefined */ \
69 status(is_scratch_class , 1 << 3) /* class is the redefined scratch class */ \
70 status(is_marked_dependent , 1 << 4) /* class is the redefined scratch class */ \
71 /* end of list */
72
73 #define IK_STATUS_ENUM_NAME(name, value) _misc_##name = value,
74 enum {
75 IK_STATUS_DO(IK_STATUS_ENUM_NAME)
76 };
77 #undef IK_STATUS_ENUM_NAME
78
79 u2 shared_loader_type_bits() const {
80 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class;
81 }
82
83 // These flags are write-once before the class is published and then read-only so don't require atomic updates.
84 u2 _flags;
85
86 // These flags are written during execution so require atomic stores
87 u1 _status;
88
89 public:
90
|
51 flag(is_shared_platform_class , 1 << 8) /* defining class loader is platform class loader */ \
52 flag(is_shared_app_class , 1 << 9) /* defining class loader is app class loader */ \
53 flag(has_contended_annotations , 1 << 10) /* has @Contended annotation */ \
54 flag(has_localvariable_table , 1 << 11) /* has localvariable information */ \
55 flag(has_miranda_methods , 1 << 12) /* True if this class has miranda methods in it's vtable */ \
56 flag(has_final_method , 1 << 13) /* True if klass has final method */ \
57 /* end of list */
58
59 #define IK_FLAGS_ENUM_NAME(name, value) _misc_##name = value,
60 enum {
61 IK_FLAGS_DO(IK_FLAGS_ENUM_NAME)
62 };
63 #undef IK_FLAGS_ENUM_NAME
64
65 #define IK_STATUS_DO(status) \
66 status(is_being_redefined , 1 << 0) /* True if the klass is being redefined */ \
67 status(has_resolved_methods , 1 << 1) /* True if the klass has resolved MethodHandle methods */ \
68 status(has_been_redefined , 1 << 2) /* class has been redefined */ \
69 status(is_scratch_class , 1 << 3) /* class is the redefined scratch class */ \
70 status(is_marked_dependent , 1 << 4) /* class is the redefined scratch class */ \
71 status(has_init_deps_processed , 1 << 5) /* all init dependencies are processed */ \
72 /* end of list */
73
74 #define IK_STATUS_ENUM_NAME(name, value) _misc_##name = value,
75 enum {
76 IK_STATUS_DO(IK_STATUS_ENUM_NAME)
77 };
78 #undef IK_STATUS_ENUM_NAME
79
80 u2 shared_loader_type_bits() const {
81 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class;
82 }
83
84 // These flags are write-once before the class is published and then read-only so don't require atomic updates.
85 u2 _flags;
86
87 // These flags are written during execution so require atomic stores
88 u1 _status;
89
90 public:
91
|