On Tue, 24 May 2022 23:31:36 GMT, Serguei Spitsyn <sspit...@openjdk.org> 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