< prev index next >
src/share/vm/prims/jvmtiThreadState.hpp
Print this page
*** 416,433 ****
public:
RedefineVerifyMark(Klass* the_class, Klass* scratch_class,
JvmtiThreadState *state) : _state(state), _scratch_class(scratch_class)
{
_state->set_class_versions_map(the_class, scratch_class);
! _scratch_mirror = Handle(Thread::current(), _scratch_class->java_mirror());
! _scratch_class->set_java_mirror(the_class->java_mirror());
}
~RedefineVerifyMark() {
// Restore the scratch class's mirror, so when scratch_class is removed
// the correct mirror pointing to it can be cleared.
! _scratch_class->set_java_mirror(_scratch_mirror());
_state->clear_class_versions_map();
}
};
#endif // SHARE_VM_PRIMS_JVMTITHREADSTATE_HPP
--- 416,435 ----
public:
RedefineVerifyMark(Klass* the_class, Klass* scratch_class,
JvmtiThreadState *state) : _state(state), _scratch_class(scratch_class)
{
_state->set_class_versions_map(the_class, scratch_class);
! Thread* thread = Thread::current();
! _scratch_mirror = Handle(thread, _scratch_class->java_mirror());
! Handle the_mirror(thread, the_class->java_mirror());
! _scratch_class->set_java_mirror(the_mirror);
}
~RedefineVerifyMark() {
// Restore the scratch class's mirror, so when scratch_class is removed
// the correct mirror pointing to it can be cleared.
! _scratch_class->set_java_mirror(_scratch_mirror);
_state->clear_class_versions_map();
}
};
#endif // SHARE_VM_PRIMS_JVMTITHREADSTATE_HPP
< prev index next >