37 #define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header)
38 #define WB_END JNI_END
39 #define WB_METHOD_DECLARE(result_type) extern "C" result_type JNICALL
40
41 #define CHECK_JNI_EXCEPTION_(env, value) \
42 do { \
43 JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
44 if (HAS_PENDING_EXCEPTION) { \
45 return(value); \
46 } \
47 } while (0)
48
49 #define CHECK_JNI_EXCEPTION(env) \
50 do { \
51 JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
52 if (HAS_PENDING_EXCEPTION) { \
53 return; \
54 } \
55 } while (0)
56
57 class WhiteBox : public AllStatic {
58 private:
59 static bool _used;
60 public:
61 static bool used() { return _used; }
62 static void set_used() { _used = true; }
63 static int offset_for_field(const char* field_name, oop object,
64 Symbol* signature_symbol);
65 static const char* lookup_jstring(const char* field_name, oop object);
66 static bool lookup_bool(const char* field_name, oop object);
67
68 static int array_bytes_to_length(size_t bytes);
69 static void register_methods(JNIEnv* env, jclass wbclass, JavaThread* thread,
70 JNINativeMethod* method_array, int method_count);
71 static void register_extended(JNIEnv* env, jclass wbclass, JavaThread* thread);
72 };
73
74
75
76 #endif // SHARE_VM_PRIMS_WHITEBOX_HPP
|
37 #define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header)
38 #define WB_END JNI_END
39 #define WB_METHOD_DECLARE(result_type) extern "C" result_type JNICALL
40
41 #define CHECK_JNI_EXCEPTION_(env, value) \
42 do { \
43 JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
44 if (HAS_PENDING_EXCEPTION) { \
45 return(value); \
46 } \
47 } while (0)
48
49 #define CHECK_JNI_EXCEPTION(env) \
50 do { \
51 JavaThread* THREAD = JavaThread::thread_from_jni_environment(env); \
52 if (HAS_PENDING_EXCEPTION) { \
53 return; \
54 } \
55 } while (0)
56
57 class CodeBlob;
58 class CodeHeap;
59
60 class WhiteBox : public AllStatic {
61 private:
62 static bool _used;
63 public:
64 static volatile bool compilation_locked;
65 static bool used() { return _used; }
66 static void set_used() { _used = true; }
67 static int offset_for_field(const char* field_name, oop object,
68 Symbol* signature_symbol);
69 static const char* lookup_jstring(const char* field_name, oop object);
70 static bool lookup_bool(const char* field_name, oop object);
71 static void force_sweep();
72 static int get_blob_type(const CodeBlob* code);
73 static CodeHeap* get_code_heap(int blob_type);
74 static CodeBlob* allocateCodeHeap(int blob_type, int size);
75 static int array_bytes_to_length(size_t bytes);
76 static void register_methods(JNIEnv* env, jclass wbclass, JavaThread* thread,
77 JNINativeMethod* method_array, int method_count);
78 static void register_extended(JNIEnv* env, jclass wbclass, JavaThread* thread);
79 };
80
81
82
83 #endif // SHARE_VM_PRIMS_WHITEBOX_HPP
|