src/share/vm/prims/jvmtiEnvBase.hpp

Print this page

        

*** 332,342 **** --- 332,365 ---- } JvmtiEnv* first() { return JvmtiEnvBase::head_environment(); } JvmtiEnv* next(JvmtiEnvBase* env) { return env->next_environment(); } }; + // VM operation to update for pop top frame. + class VM_UpdateForPopTopFrame : public VM_Operation { + private: + JvmtiThreadState* _state; + jvmtiError _result; + public: + VM_UpdateForPopTopFrame(JvmtiThreadState* state) { + _state = state; + _result = JVMTI_ERROR_NONE; + } + VMOp_Type type() const { return VMOp_UpdateForPopTopFrame; } + jvmtiError result() { return _result; } + void doit() { + JavaThread* jt = _state->get_thread(); + if (Threads::includes(jt) && !jt->is_exiting() && jt->threadObj() != NULL) { + _state->update_for_pop_top_frame(); + } else { + _result = JVMTI_ERROR_THREAD_NOT_ALIVE; + } + } + }; + + // VM operation to get monitor information with stack depth. class VM_GetOwnedMonitorInfo : public VM_Operation { private: JvmtiEnv *_env; JavaThread* _calling_thread;