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_vanilla_constructor , 1 << 13) /* True if klass has a vanilla default constructor */ \
57 flag(has_final_method , 1 << 14) /* True if klass has final method */ \
58 /* end of list */
59
60 #define IK_FLAGS_ENUM_NAME(name, value) _misc_##name = value,
61 enum {
62 IK_FLAGS_DO(IK_FLAGS_ENUM_NAME)
63 };
64 #undef IK_FLAGS_ENUM_NAME
65
66 #define IK_STATUS_DO(status) \
67 status(is_being_redefined , 1 << 0) /* True if the klass is being redefined */ \
68 status(has_resolved_methods , 1 << 1) /* True if the klass has resolved MethodHandle methods */ \
69 status(has_been_redefined , 1 << 2) /* class has been redefined */ \
70 status(is_scratch_class , 1 << 3) /* class is the redefined scratch class */ \
71 status(is_marked_dependent , 1 << 4) /* class is the redefined scratch class */ \
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
|
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_vanilla_constructor , 1 << 13) /* True if klass has a vanilla default constructor */ \
57 flag(has_final_method , 1 << 14) /* True if klass has final method */ \
58 /* end of list */
59
60 #define IK_FLAGS_ENUM_NAME(name, value) _misc_##name = value,
61 enum {
62 IK_FLAGS_DO(IK_FLAGS_ENUM_NAME)
63 };
64 #undef IK_FLAGS_ENUM_NAME
65
66 #define IK_STATUS_DO(status) \
67 status(is_being_redefined , 1 << 0) /* True if the klass is being redefined */ \
68 status(has_resolved_methods , 1 << 1) /* True if the klass has resolved MethodHandle methods */ \
69 status(has_been_redefined , 1 << 2) /* class has been redefined */ \
70 status(is_scratch_class , 1 << 3) /* class is the redefined scratch class */ \
71 status(is_marked_dependent , 1 << 4) /* class is the redefined scratch class */ \
72 status(has_init_deps_processed , 1 << 5) /* all init dependencies are processed */ \
73 /* end of list */
74
75 #define IK_STATUS_ENUM_NAME(name, value) _misc_##name = value,
76 enum {
77 IK_STATUS_DO(IK_STATUS_ENUM_NAME)
78 };
79 #undef IK_STATUS_ENUM_NAME
80
81 u2 shared_loader_type_bits() const {
82 return _misc_is_shared_boot_class|_misc_is_shared_platform_class|_misc_is_shared_app_class;
83 }
84
85 // These flags are write-once before the class is published and then read-only so don't require atomic updates.
86 u2 _flags;
87
88 // These flags are written during execution so require atomic stores
89 u1 _status;
90
91 public:
92
|