提交 7fc9127f 编写于 作者: T twisti

7041244: JSR 292: Server VM gets a SEGV running a JCK test

Reviewed-by: iveresov, kvn, never
上级 72b69418
...@@ -645,9 +645,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan ...@@ -645,9 +645,10 @@ void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHan
// Live at this point: // Live at this point:
// - G5_klass : klass required by the target method // - G5_klass : klass required by the target method
// - O0_argslot : argslot index in vmarg; may be required in the failing path
// - O1_scratch : argument klass to test // - O1_scratch : argument klass to test
// - G3_method_handle: adapter method handle // - G3_method_handle: adapter method handle
__ check_klass_subtype(O1_scratch, G5_klass, O0_argslot, O2_scratch, done); __ check_klass_subtype(O1_scratch, G5_klass, O2_scratch, O3_scratch, done);
// If we get here, the type check failed! // If we get here, the type check failed!
__ load_heap_oop(G3_amh_argument, O2_required); // required class __ load_heap_oop(G3_amh_argument, O2_required); // required class
......
...@@ -175,7 +175,7 @@ class VerifyOopClosure: public OopClosure { ...@@ -175,7 +175,7 @@ class VerifyOopClosure: public OopClosure {
protected: protected:
template <class T> inline void do_oop_work(T* p) { template <class T> inline void do_oop_work(T* p) {
oop obj = oopDesc::load_decode_heap_oop(p); oop obj = oopDesc::load_decode_heap_oop(p);
guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, obj)); guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, (oopDesc*) obj));
} }
public: public:
virtual void do_oop(oop* p); virtual void do_oop(oop* p);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册