< prev index next >
src/hotspot/share/runtime/interfaceSupport.inline.hpp
Print this page
*** 20,67 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
! #ifndef SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
! #define SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
#include "gc/shared/gcLocker.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.hpp"
#include "runtime/os.hpp"
#include "runtime/safepointMechanism.inline.hpp"
! #include "runtime/thread.inline.hpp"
! #include "runtime/vmThread.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/macros.hpp"
#include "utilities/preserveException.hpp"
// Wrapper for all entry points to the virtual machine.
- // The HandleMarkCleaner is a faster version of HandleMark.
- // It relies on the fact that there is a HandleMark further
- // down the stack (in JavaCalls::call_helper), and just resets
- // to the saved values in that HandleMark.
-
- class HandleMarkCleaner: public StackObj {
- private:
- Thread* _thread;
- public:
- HandleMarkCleaner(Thread* thread) {
- _thread = thread;
- _thread->last_handle_mark()->push();
- }
- ~HandleMarkCleaner() {
- _thread->last_handle_mark()->pop_and_restore();
- }
-
- private:
- inline void* operator new(size_t size, void* ptr) throw() {
- return ptr;
- }
- };
// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
// VM_ENTRY_BASE macros. These macros are used to guard entry points into
// the VM and perform checks upon leave of the VM.
--- 20,44 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
! #ifndef SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
! #define SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
#include "gc/shared/gcLocker.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/mutexLocker.hpp"
#include "runtime/orderAccess.hpp"
#include "runtime/os.hpp"
#include "runtime/safepointMechanism.inline.hpp"
! #include "runtime/thread.hpp"
#include "utilities/globalDefinitions.hpp"
#include "utilities/macros.hpp"
#include "utilities/preserveException.hpp"
// Wrapper for all entry points to the virtual machine.
// InterfaceSupport provides functionality used by the VM_LEAF_BASE and
// VM_ENTRY_BASE macros. These macros are used to guard entry points into
// the VM and perform checks upon leave of the VM.
*** 355,396 ****
// Can be used to verify properties on enter/exit of the VM.
#ifdef ASSERT
class VMEntryWrapper {
public:
! VMEntryWrapper() {
! if (VerifyLastFrame) {
! InterfaceSupport::verify_last_frame();
! }
! }
!
! ~VMEntryWrapper() {
! InterfaceSupport::check_gc_alot();
! if (WalkStackALot) {
! InterfaceSupport::walk_stack();
! }
! #ifdef COMPILER2
! // This option is not used by Compiler 1
! if (StressDerivedPointers) {
! InterfaceSupport::stress_derived_pointers();
! }
! #endif
! if (DeoptimizeALot || DeoptimizeRandom) {
! InterfaceSupport::deoptimizeAll();
! }
! if (ZombieALot) {
! InterfaceSupport::zombieAll();
! }
! if (UnlinkSymbolsALot) {
! InterfaceSupport::unlinkSymbols();
! }
! // do verification AFTER potential deoptimization
! if (VerifyStack) {
! InterfaceSupport::verify_stack();
! }
!
! }
};
class VMNativeEntryWrapper {
public:
--- 332,343 ----
// Can be used to verify properties on enter/exit of the VM.
#ifdef ASSERT
class VMEntryWrapper {
public:
! VMEntryWrapper();
! ~VMEntryWrapper();
};
class VMNativeEntryWrapper {
public:
*** 618,623 ****
VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread)
#define JVM_END } }
! #endif // SHARE_VM_RUNTIME_INTERFACESUPPORT_HPP
--- 565,570 ----
VM_ENTRY_BASE_FROM_LEAF(result_type, header, thread)
#define JVM_END } }
! #endif // SHARE_VM_RUNTIME_INTERFACESUPPORT_INLINE_HPP
< prev index next >