void JvmtiFramePops::print() { ResourceMark rm; int n = _pops->length(); for (int i=0; i<n; i++) { JvmtiFramePop fp = JvmtiFramePop(_pops->at(i)); tty->print("%d: ", i); fp.print(); tty->cr(); } }
int JvmtiFramePops::clear_to(JvmtiFramePop& fp) { int cleared = 0; int index = 0; while (index < _pops->length()) { JvmtiFramePop pop = JvmtiFramePop(_pops->at(index)); if (pop.above_on_stack(fp)) { _pops->remove_at(index); ++cleared; } else { ++index; } } return cleared; }
void JvmtiEventControllerPrivate::clear_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) { EC_TRACE(("JVMTI [%s] # clear frame pop - frame=%d", JvmtiTrace::safe_get_thread_name(ets->get_thread()), fpop.frame_number() )); ets->get_frame_pops()->clear(fpop); recompute_thread_enabled(ets->get_thread()->jvmti_thread_state()); }
void JvmtiEventControllerPrivate::clear_to_frame_pop(JvmtiEnvThreadState *ets, JvmtiFramePop fpop) { int cleared_cnt = ets->get_frame_pops()->clear_to(fpop); EC_TRACE(("JVMTI [%s] # clear to frame pop - frame=%d, count=%d", JvmtiTrace::safe_get_thread_name(ets->get_thread()), fpop.frame_number(), cleared_cnt )); if (cleared_cnt > 0) { recompute_thread_enabled(ets->get_thread()->jvmti_thread_state()); } }
void JvmtiFramePops::clear(JvmtiFramePop& fp) { assert(_pops->length() > 0, "No more frame pops"); _pops->remove(fp.frame_number()); }
void JvmtiFramePops::set(JvmtiFramePop& fp) { if (_pops->find(fp.frame_number()) < 0) { _pops->append(fp.frame_number()); } }