23 */ |
23 */ |
24 |
24 |
25 #ifndef SHARE_VM_PRIMS_WHITEBOX_HPP |
25 #ifndef SHARE_VM_PRIMS_WHITEBOX_HPP |
26 #define SHARE_VM_PRIMS_WHITEBOX_HPP |
26 #define SHARE_VM_PRIMS_WHITEBOX_HPP |
27 |
27 |
|
28 #include "prims/jni.h" |
|
29 |
|
30 #include "memory/allocation.hpp" |
|
31 #include "oops/oopsHierarchy.hpp" |
|
32 |
|
33 // Entry macro to transition from JNI to VM state. |
|
34 |
|
35 #define WB_ENTRY(result_type, header) JNI_ENTRY(result_type, header) |
|
36 #define WB_END JNI_END |
|
37 #define WB_METHOD_DECLARE extern "C" jobjectArray JNICALL |
|
38 |
28 class WhiteBox : public AllStatic { |
39 class WhiteBox : public AllStatic { |
29 private: |
40 private: |
30 static bool _used; |
41 static bool _used; |
31 public: |
42 public: |
32 static bool used() { return _used; } |
43 static bool used() { return _used; } |
33 static void set_used() { _used = true; } |
44 static void set_used() { _used = true; } |
|
45 static int offset_for_field(const char* field_name, oop object, |
|
46 Symbol* signature_symbol); |
|
47 static const char* lookup_jstring(const char* field_name, oop object); |
|
48 static bool lookup_bool(const char* field_name, oop object); |
34 }; |
49 }; |
35 |
50 |
|
51 |
|
52 |
36 #endif // SHARE_VM_PRIMS_WHITEBOX_HPP |
53 #endif // SHARE_VM_PRIMS_WHITEBOX_HPP |