30 #include "code/debugInfo.hpp"
31 #include "code/pcDesc.hpp"
32 #include "compiler/compilerOracle.hpp"
33 #include "interpreter/interpreter.hpp"
34 #include "memory/oopFactory.hpp"
35 #include "memory/resourceArea.hpp"
36 #include "memory/universe.inline.hpp"
37 #include "oops/fieldStreams.hpp"
38 #include "oops/instanceKlass.hpp"
39 #include "oops/instanceMirrorKlass.hpp"
40 #include "oops/klass.hpp"
41 #include "oops/method.hpp"
42 #include "oops/symbol.hpp"
43 #include "oops/typeArrayOop.hpp"
44 #include "runtime/fieldDescriptor.hpp"
45 #include "runtime/handles.inline.hpp"
46 #include "runtime/interfaceSupport.hpp"
47 #include "runtime/java.hpp"
48 #include "runtime/javaCalls.hpp"
49 #include "runtime/safepoint.hpp"
50 #include "runtime/vframe.hpp"
51 #include "utilities/preserveException.hpp"
52 #ifdef TARGET_OS_FAMILY_linux
53 # include "thread_linux.inline.hpp"
54 #endif
55 #ifdef TARGET_OS_FAMILY_solaris
56 # include "thread_solaris.inline.hpp"
57 #endif
58 #ifdef TARGET_OS_FAMILY_windows
59 # include "thread_windows.inline.hpp"
60 #endif
61 #ifdef TARGET_OS_FAMILY_bsd
62 # include "thread_bsd.inline.hpp"
63 #endif
64
65 #define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java) \
66 klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
67
68 #define DECLARE_INJECTED_FIELD(klass, name, signature, may_be_java) \
69 { SystemDictionary::WK_KLASS_ENUM_NAME(klass), vmSymbols::VM_SYMBOL_ENUM_NAME(name##_name), vmSymbols::VM_SYMBOL_ENUM_NAME(signature), may_be_java },
70
71 InjectedField JavaClasses::_injected_fields[] = {
72 ALL_INJECTED_FIELDS(DECLARE_INJECTED_FIELD)
73 };
74
75 int JavaClasses::compute_injected_offset(InjectedFieldID id) {
76 return _injected_fields[id].compute_offset();
77 }
78
79
80 InjectedField* JavaClasses::get_injected(Symbol* class_name, int* field_count) {
81 *field_count = 0;
82
83 vmSymbols::SID sid = vmSymbols::find_sid(class_name);
|
30 #include "code/debugInfo.hpp"
31 #include "code/pcDesc.hpp"
32 #include "compiler/compilerOracle.hpp"
33 #include "interpreter/interpreter.hpp"
34 #include "memory/oopFactory.hpp"
35 #include "memory/resourceArea.hpp"
36 #include "memory/universe.inline.hpp"
37 #include "oops/fieldStreams.hpp"
38 #include "oops/instanceKlass.hpp"
39 #include "oops/instanceMirrorKlass.hpp"
40 #include "oops/klass.hpp"
41 #include "oops/method.hpp"
42 #include "oops/symbol.hpp"
43 #include "oops/typeArrayOop.hpp"
44 #include "runtime/fieldDescriptor.hpp"
45 #include "runtime/handles.inline.hpp"
46 #include "runtime/interfaceSupport.hpp"
47 #include "runtime/java.hpp"
48 #include "runtime/javaCalls.hpp"
49 #include "runtime/safepoint.hpp"
50 #include "runtime/thread.inline.hpp"
51 #include "runtime/vframe.hpp"
52 #include "utilities/preserveException.hpp"
53
54 #define INJECTED_FIELD_COMPUTE_OFFSET(klass, name, signature, may_be_java) \
55 klass::_##name##_offset = JavaClasses::compute_injected_offset(JavaClasses::klass##_##name##_enum);
56
57 #define DECLARE_INJECTED_FIELD(klass, name, signature, may_be_java) \
58 { SystemDictionary::WK_KLASS_ENUM_NAME(klass), vmSymbols::VM_SYMBOL_ENUM_NAME(name##_name), vmSymbols::VM_SYMBOL_ENUM_NAME(signature), may_be_java },
59
60 InjectedField JavaClasses::_injected_fields[] = {
61 ALL_INJECTED_FIELDS(DECLARE_INJECTED_FIELD)
62 };
63
64 int JavaClasses::compute_injected_offset(InjectedFieldID id) {
65 return _injected_fields[id].compute_offset();
66 }
67
68
69 InjectedField* JavaClasses::get_injected(Symbol* class_name, int* field_count) {
70 *field_count = 0;
71
72 vmSymbols::SID sid = vmSymbols::find_sid(class_name);
|