--- a/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp Fri Sep 13 16:03:31 2019 -0700
+++ b/src/hotspot/share/jfr/support/jfrTraceIdExtension.hpp Sat Sep 14 14:40:09 2019 +0200
@@ -43,39 +43,46 @@
class JfrTraceFlag {
private:
- mutable jbyte _flags;
+ mutable jshort _flags;
public:
JfrTraceFlag() : _flags(0) {}
- explicit JfrTraceFlag(jbyte flags) : _flags(flags) {}
- void set_flag(jbyte flag) const {
- _flags |= flag;
- }
- void clear_flag(jbyte flag) const {
- _flags &= (~flag);
- }
- jbyte flags() const { return _flags; }
- bool is_set(jbyte flag) const {
+ bool is_set(jshort flag) const {
return (_flags & flag) != 0;
}
- jbyte* const flags_addr() const {
- return &_flags;
+
+ jshort flags() const {
+ return _flags;
+ }
+
+ void set_flags(jshort flags) const {
+ _flags = flags;
+ }
+
+ jbyte* flags_addr() const {
+ return (jbyte*)&_flags;
+ }
+ jbyte* meta_addr() const {
+ return ((jbyte*)&_flags) + 1;
}
};
#define DEFINE_TRACE_FLAG mutable JfrTraceFlag _trace_flags
#define DEFINE_TRACE_FLAG_ACCESSOR \
- void set_trace_flag(jbyte flag) const { \
- _trace_flags.set_flag(flag); \
+ bool is_trace_flag_set(jshort flag) const { \
+ return _trace_flags.is_set(flag); \
} \
- jbyte trace_flags() const { \
+ jshort trace_flags() const { \
return _trace_flags.flags(); \
} \
- bool is_trace_flag_set(jbyte flag) const { \
- return _trace_flags.is_set(flag); \
+ void set_trace_flags(jshort flags) const { \
+ _trace_flags.set_flags(flags); \
} \
- jbyte* const trace_flags_addr() const { \
+ jbyte* trace_flags_addr() const { \
return _trace_flags.flags_addr(); \
+ } \
+ jbyte* trace_meta_addr() const { \
+ return _trace_flags.meta_addr(); \
}
#endif // SHARE_JFR_SUPPORT_JFRTRACEIDEXTENSION_HPP