18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
26 #define SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
27
28 #include "runtime/handles.hpp"
29 #ifdef TARGET_OS_FAMILY_linux
30 # include "thread_linux.inline.hpp"
31 #endif
32 #ifdef TARGET_OS_FAMILY_solaris
33 # include "thread_solaris.inline.hpp"
34 #endif
35 #ifdef TARGET_OS_FAMILY_windows
36 # include "thread_windows.inline.hpp"
37 #endif
38
39 // This file provides more support for exception handling; see also exceptions.hpp
40 class PreserveExceptionMark {
41 private:
42 Thread* _thread;
43 Handle _preserved_exception_oop;
44 int _preserved_exception_line;
45 const char* _preserved_exception_file;
46
47 public:
48 PreserveExceptionMark(Thread*& thread);
49 ~PreserveExceptionMark();
50 };
51
52
53 // This is a clone of PreserveExceptionMark which asserts instead
54 // of failing when what it wraps generates a pending exception.
55 // It also addresses bug 6431341.
56 class CautiouslyPreserveExceptionMark {
57 private:
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #ifndef SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
26 #define SHARE_VM_UTILITIES_PRESERVEEXCEPTION_HPP
27
28 #include "runtime/handles.hpp"
29 #ifdef TARGET_OS_FAMILY_linux
30 # include "thread_linux.inline.hpp"
31 #endif
32 #ifdef TARGET_OS_FAMILY_solaris
33 # include "thread_solaris.inline.hpp"
34 #endif
35 #ifdef TARGET_OS_FAMILY_windows
36 # include "thread_windows.inline.hpp"
37 #endif
38 #ifdef TARGET_OS_FAMILY_bsd
39 # include "thread_bsd.inline.hpp"
40 #endif
41
42 // This file provides more support for exception handling; see also exceptions.hpp
43 class PreserveExceptionMark {
44 private:
45 Thread* _thread;
46 Handle _preserved_exception_oop;
47 int _preserved_exception_line;
48 const char* _preserved_exception_file;
49
50 public:
51 PreserveExceptionMark(Thread*& thread);
52 ~PreserveExceptionMark();
53 };
54
55
56 // This is a clone of PreserveExceptionMark which asserts instead
57 // of failing when what it wraps generates a pending exception.
58 // It also addresses bug 6431341.
59 class CautiouslyPreserveExceptionMark {
60 private:
|