8185263: Fix zero build after 8169881, 8175318, 8178350

Reviewed-by: iklam, coleenp
This commit is contained in:
Thomas Stuefe 2017-07-26 11:51:25 -07:00
parent 7599f75066
commit 9ce1967658
3 changed files with 12 additions and 9 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright 2009, 2010, 2011 Red Hat, Inc. * Copyright 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
@ -147,8 +147,8 @@ int MethodHandles::method_handle_entry_linkToVirtual(Method* method, intptr_t UN
Klass* clazz = recv->klass(); Klass* clazz = recv->klass();
Klass* klass_part = InstanceKlass::cast(clazz); Klass* klass_part = InstanceKlass::cast(clazz);
ResourceMark rm(THREAD); ResourceMark rm(THREAD);
klassVtable* vtable = klass_part->vtable(); klassVtable vtable = klass_part->vtable();
Method* vmtarget = vtable->method_at(vmindex); Method* vmtarget = vtable.method_at(vmindex);
invoke_target(vmtarget, THREAD); invoke_target(vmtarget, THREAD);

View File

@ -2790,7 +2790,7 @@ run:
CALL_VM(continuation_bci = (intptr_t)InterpreterRuntime::exception_handler_for_exception(THREAD, except_oop()), CALL_VM(continuation_bci = (intptr_t)InterpreterRuntime::exception_handler_for_exception(THREAD, except_oop()),
handle_exception); handle_exception);
except_oop = THREAD->vm_result(); except_oop = Handle(THREAD, THREAD->vm_result());
THREAD->set_vm_result(NULL); THREAD->set_vm_result(NULL);
if (continuation_bci >= 0) { if (continuation_bci >= 0) {
// Place exception on top of stack // Place exception on top of stack
@ -2994,7 +2994,7 @@ run:
CALL_VM_NOCHECK(InterpreterRuntime::throw_illegal_monitor_state_exception(THREAD)); CALL_VM_NOCHECK(InterpreterRuntime::throw_illegal_monitor_state_exception(THREAD));
} }
assert(THREAD->has_pending_exception(), "Lost our exception!"); assert(THREAD->has_pending_exception(), "Lost our exception!");
illegal_state_oop = THREAD->pending_exception(); illegal_state_oop = Handle(THREAD, THREAD->pending_exception());
THREAD->clear_pending_exception(); THREAD->clear_pending_exception();
} }
} }
@ -3011,7 +3011,7 @@ run:
CALL_VM_NOCHECK(InterpreterRuntime::throw_illegal_monitor_state_exception(THREAD)); CALL_VM_NOCHECK(InterpreterRuntime::throw_illegal_monitor_state_exception(THREAD));
} }
assert(THREAD->has_pending_exception(), "Lost our exception!"); assert(THREAD->has_pending_exception(), "Lost our exception!");
illegal_state_oop = THREAD->pending_exception(); illegal_state_oop = Handle(THREAD, THREAD->pending_exception());
THREAD->clear_pending_exception(); THREAD->clear_pending_exception();
} }
} else { } else {
@ -3028,7 +3028,7 @@ run:
if (rcvr == NULL) { if (rcvr == NULL) {
if (!suppress_error) { if (!suppress_error) {
VM_JAVA_ERROR_NO_JUMP(vmSymbols::java_lang_NullPointerException(), "", note_nullCheck_trap); VM_JAVA_ERROR_NO_JUMP(vmSymbols::java_lang_NullPointerException(), "", note_nullCheck_trap);
illegal_state_oop = THREAD->pending_exception(); illegal_state_oop = Handle(THREAD, THREAD->pending_exception());
THREAD->clear_pending_exception(); THREAD->clear_pending_exception();
} }
} else if (UseHeavyMonitors) { } else if (UseHeavyMonitors) {
@ -3038,7 +3038,7 @@ run:
CALL_VM_NOCHECK(InterpreterRuntime::monitorexit(THREAD, base)); CALL_VM_NOCHECK(InterpreterRuntime::monitorexit(THREAD, base));
} }
if (THREAD->has_pending_exception()) { if (THREAD->has_pending_exception()) {
if (!suppress_error) illegal_state_oop = THREAD->pending_exception(); if (!suppress_error) illegal_state_oop = Handle(THREAD, THREAD->pending_exception());
THREAD->clear_pending_exception(); THREAD->clear_pending_exception();
} }
} else { } else {
@ -3059,7 +3059,7 @@ run:
CALL_VM_NOCHECK(InterpreterRuntime::monitorexit(THREAD, base)); CALL_VM_NOCHECK(InterpreterRuntime::monitorexit(THREAD, base));
} }
if (THREAD->has_pending_exception()) { if (THREAD->has_pending_exception()) {
if (!suppress_error) illegal_state_oop = THREAD->pending_exception(); if (!suppress_error) illegal_state_oop = Handle(THREAD, THREAD->pending_exception());
THREAD->clear_pending_exception(); THREAD->clear_pending_exception();
} }
} }

View File

@ -152,6 +152,9 @@ class JNIHandleBlock : public CHeapObj<mtInternal> {
// Free list computation // Free list computation
void rebuild_free_list(); void rebuild_free_list();
// No more handles in the both the current and following blocks
void clear() { _top = 0; }
public: public:
// Handle allocation // Handle allocation
jobject allocate_handle(oop obj); jobject allocate_handle(oop obj);