On Tue, 24 May 2022 23:31:36 GMT, Serguei Spitsyn <[email protected]> wrote:
>> Maybe it would be clearer to turn off the bits when there are no events:
>>
>> jlong enabled_bits =
>> env->env_event_enable()->_event_callback_enabled.get_bits();
>> for (int ei = JVMTI_MIN_EVENT_TYPE_VAL; ei <= JVMTI_MAX_EVENT_TYPE_VAL;
>> ++ei) {
>> jvmtiEvent evt_t = (jvmtiEvent)ei;
>> if (!env->has_callback(evt_t)) {
>> // clear the bit if there is no callback
>> enabled_bits &= ~JvmtiEventEnabled::bit_for(evt_t);
>> }
>> }
>
> Thanks, Alex! You are right - fixed.
> I was stupid enough to confuse the direction. Minimal tracing helps in such
> cases.
Clearing event bits to make it more readable looks like a good idea.
What about the following? :
jlong enabled_bits =
env->env_event_enable()->_event_callback_enabled.get_bits();
for (int ei = JVMTI_MIN_EVENT_TYPE_VAL; ei <= JVMTI_MAX_EVENT_TYPE_VAL; ++ei) {
jvmtiEvent evt_t = (jvmtiEvent)ei;
if (env->has_callback(evt_t)) {
// set the bit if there is a callback
enabled_bits |= JvmtiEventEnabled::bit_for(evt_t);
} else {
// clear the bit if there is no callback
enabled_bits &= ~JvmtiEventEnabled::bit_for(evt_t);
}
}
-------------
PR: https://git.openjdk.java.net/jdk/pull/8860