374 earlyret_inactive = 0,
375 earlyret_pending = 1
376 };
377
378 void set_earlyret_pending(void) { _earlyret_state = earlyret_pending; }
379 void clr_earlyret_pending(void) { _earlyret_state = earlyret_inactive; }
380 bool is_earlyret_pending(void) { return (_earlyret_state == earlyret_pending); }
381
382 TosState earlyret_tos() { return _earlyret_tos; }
383 oop earlyret_oop() const { return _earlyret_oop; }
384 void set_earlyret_oop (oop x) { _earlyret_oop = x; }
385 jvalue earlyret_value() { return _earlyret_value; }
386 void set_earlyret_value(jvalue val, TosState tos) { _earlyret_tos = tos; _earlyret_value = val; }
387 void clr_earlyret_value() { _earlyret_tos = ilgl; _earlyret_value.j = 0L; }
388
389 static ByteSize earlyret_state_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_state); }
390 static ByteSize earlyret_tos_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_tos); }
391 static ByteSize earlyret_oop_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_oop); }
392 static ByteSize earlyret_value_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_value); }
393
394 void oops_do(OopClosure* f); // GC support
395
396 public:
397 void set_should_post_on_exceptions(bool val) { _thread->set_should_post_on_exceptions_flag(val ? JNI_TRUE : JNI_FALSE); }
398 };
399
400 class RedefineVerifyMark : public StackObj {
401 private:
402 JvmtiThreadState *_state;
403 KlassHandle _scratch_class;
404 Handle _scratch_mirror;
405
406 public:
407 RedefineVerifyMark(KlassHandle *the_class, KlassHandle *scratch_class,
408 JvmtiThreadState *state) : _state(state), _scratch_class(*scratch_class)
409 {
410 _state->set_class_versions_map(the_class, scratch_class);
411 _scratch_mirror = Handle(_scratch_class->java_mirror());
412 (*scratch_class)->set_java_mirror((*the_class)->java_mirror());
413 }
414
|
374 earlyret_inactive = 0,
375 earlyret_pending = 1
376 };
377
378 void set_earlyret_pending(void) { _earlyret_state = earlyret_pending; }
379 void clr_earlyret_pending(void) { _earlyret_state = earlyret_inactive; }
380 bool is_earlyret_pending(void) { return (_earlyret_state == earlyret_pending); }
381
382 TosState earlyret_tos() { return _earlyret_tos; }
383 oop earlyret_oop() const { return _earlyret_oop; }
384 void set_earlyret_oop (oop x) { _earlyret_oop = x; }
385 jvalue earlyret_value() { return _earlyret_value; }
386 void set_earlyret_value(jvalue val, TosState tos) { _earlyret_tos = tos; _earlyret_value = val; }
387 void clr_earlyret_value() { _earlyret_tos = ilgl; _earlyret_value.j = 0L; }
388
389 static ByteSize earlyret_state_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_state); }
390 static ByteSize earlyret_tos_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_tos); }
391 static ByteSize earlyret_oop_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_oop); }
392 static ByteSize earlyret_value_offset() { return byte_offset_of(JvmtiThreadState, _earlyret_value); }
393
394 void oops_do(OopClosure* f) NOT_JVMTI_RETURN; // GC support
395
396 public:
397 void set_should_post_on_exceptions(bool val) { _thread->set_should_post_on_exceptions_flag(val ? JNI_TRUE : JNI_FALSE); }
398 };
399
400 class RedefineVerifyMark : public StackObj {
401 private:
402 JvmtiThreadState *_state;
403 KlassHandle _scratch_class;
404 Handle _scratch_mirror;
405
406 public:
407 RedefineVerifyMark(KlassHandle *the_class, KlassHandle *scratch_class,
408 JvmtiThreadState *state) : _state(state), _scratch_class(*scratch_class)
409 {
410 _state->set_class_versions_map(the_class, scratch_class);
411 _scratch_mirror = Handle(_scratch_class->java_mirror());
412 (*scratch_class)->set_java_mirror((*the_class)->java_mirror());
413 }
414
|