< prev index next >

src/hotspot/share/runtime/interfaceSupport.inline.hpp

Print this page

        

*** 29,67 **** #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. --- 29,44 ---- #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:
< prev index next >