src/share/vm/classfile/javaClasses.cpp

Print this page




 927 
 928 int java_lang_Thread::_name_offset = 0;
 929 int java_lang_Thread::_group_offset = 0;
 930 int java_lang_Thread::_contextClassLoader_offset = 0;
 931 int java_lang_Thread::_inheritedAccessControlContext_offset = 0;
 932 int java_lang_Thread::_priority_offset = 0;
 933 int java_lang_Thread::_eetop_offset = 0;
 934 int java_lang_Thread::_daemon_offset = 0;
 935 int java_lang_Thread::_stillborn_offset = 0;
 936 int java_lang_Thread::_stackSize_offset = 0;
 937 int java_lang_Thread::_tid_offset = 0;
 938 int java_lang_Thread::_thread_status_offset = 0;
 939 int java_lang_Thread::_park_blocker_offset = 0;
 940 int java_lang_Thread::_park_event_offset = 0 ;
 941 
 942 
 943 void java_lang_Thread::compute_offsets() {
 944   assert(_group_offset == 0, "offsets should be initialized only once");
 945 
 946   Klass* k = SystemDictionary::Thread_klass();
 947   compute_offset(_name_offset,      k, vmSymbols::name_name(),      vmSymbols::char_array_signature());
 948   compute_offset(_group_offset,     k, vmSymbols::group_name(),     vmSymbols::threadgroup_signature());
 949   compute_offset(_contextClassLoader_offset, k, vmSymbols::contextClassLoader_name(), vmSymbols::classloader_signature());
 950   compute_offset(_inheritedAccessControlContext_offset, k, vmSymbols::inheritedAccessControlContext_name(), vmSymbols::accesscontrolcontext_signature());
 951   compute_offset(_priority_offset,  k, vmSymbols::priority_name(),  vmSymbols::int_signature());
 952   compute_offset(_daemon_offset,    k, vmSymbols::daemon_name(),    vmSymbols::bool_signature());
 953   compute_offset(_eetop_offset,     k, vmSymbols::eetop_name(),     vmSymbols::long_signature());
 954   compute_offset(_stillborn_offset, k, vmSymbols::stillborn_name(), vmSymbols::bool_signature());
 955   // The stackSize field is only present starting in 1.4, so don't go fatal.
 956   compute_optional_offset(_stackSize_offset, k, vmSymbols::stackSize_name(), vmSymbols::long_signature());
 957   // The tid and thread_status fields are only present starting in 1.5, so don't go fatal.
 958   compute_optional_offset(_tid_offset, k, vmSymbols::thread_id_name(), vmSymbols::long_signature());
 959   compute_optional_offset(_thread_status_offset, k, vmSymbols::thread_status_name(), vmSymbols::int_signature());
 960   // The parkBlocker field is only present starting in 1.6, so don't go fatal.
 961   compute_optional_offset(_park_blocker_offset, k, vmSymbols::park_blocker_name(), vmSymbols::object_signature());
 962   compute_optional_offset(_park_event_offset, k, vmSymbols::park_event_name(),
 963  vmSymbols::long_signature());
 964 }
 965 
 966 
 967 JavaThread* java_lang_Thread::thread(oop java_thread) {
 968   return (JavaThread*)java_thread->address_field(_eetop_offset);
 969 }
 970 
 971 
 972 void java_lang_Thread::set_thread(oop java_thread, JavaThread* thread) {
 973   java_thread->address_field_put(_eetop_offset, (address)thread);
 974 }
 975 
 976 
 977 typeArrayOop java_lang_Thread::name(oop java_thread) {
 978   oop name = java_thread->obj_field(_name_offset);
 979   assert(name == NULL || (name->is_typeArray() && TypeArrayKlass::cast(name->klass())->element_type() == T_CHAR), "just checking");
 980   return typeArrayOop(name);
 981 }
 982 
 983 
 984 void java_lang_Thread::set_name(oop java_thread, typeArrayOop name) {
 985   assert(java_thread->obj_field(_name_offset) == NULL, "name should be NULL");
 986   java_thread->obj_field_put(_name_offset, name);
 987 }
 988 
 989 
 990 ThreadPriority java_lang_Thread::priority(oop java_thread) {
 991   return (ThreadPriority)java_thread->int_field(_priority_offset);
 992 }
 993 
 994 
 995 void java_lang_Thread::set_priority(oop java_thread, ThreadPriority priority) {
 996   java_thread->int_field_put(_priority_offset, priority);
 997 }
 998 
 999 
1000 oop java_lang_Thread::threadGroup(oop java_thread) {
1001   return java_thread->obj_field(_group_offset);
1002 }
1003 
1004 




 927 
 928 int java_lang_Thread::_name_offset = 0;
 929 int java_lang_Thread::_group_offset = 0;
 930 int java_lang_Thread::_contextClassLoader_offset = 0;
 931 int java_lang_Thread::_inheritedAccessControlContext_offset = 0;
 932 int java_lang_Thread::_priority_offset = 0;
 933 int java_lang_Thread::_eetop_offset = 0;
 934 int java_lang_Thread::_daemon_offset = 0;
 935 int java_lang_Thread::_stillborn_offset = 0;
 936 int java_lang_Thread::_stackSize_offset = 0;
 937 int java_lang_Thread::_tid_offset = 0;
 938 int java_lang_Thread::_thread_status_offset = 0;
 939 int java_lang_Thread::_park_blocker_offset = 0;
 940 int java_lang_Thread::_park_event_offset = 0 ;
 941 
 942 
 943 void java_lang_Thread::compute_offsets() {
 944   assert(_group_offset == 0, "offsets should be initialized only once");
 945 
 946   Klass* k = SystemDictionary::Thread_klass();
 947   compute_offset(_name_offset,      k, vmSymbols::name_name(),      vmSymbols::string_signature());
 948   compute_offset(_group_offset,     k, vmSymbols::group_name(),     vmSymbols::threadgroup_signature());
 949   compute_offset(_contextClassLoader_offset, k, vmSymbols::contextClassLoader_name(), vmSymbols::classloader_signature());
 950   compute_offset(_inheritedAccessControlContext_offset, k, vmSymbols::inheritedAccessControlContext_name(), vmSymbols::accesscontrolcontext_signature());
 951   compute_offset(_priority_offset,  k, vmSymbols::priority_name(),  vmSymbols::int_signature());
 952   compute_offset(_daemon_offset,    k, vmSymbols::daemon_name(),    vmSymbols::bool_signature());
 953   compute_offset(_eetop_offset,     k, vmSymbols::eetop_name(),     vmSymbols::long_signature());
 954   compute_offset(_stillborn_offset, k, vmSymbols::stillborn_name(), vmSymbols::bool_signature());
 955   // The stackSize field is only present starting in 1.4, so don't go fatal.
 956   compute_optional_offset(_stackSize_offset, k, vmSymbols::stackSize_name(), vmSymbols::long_signature());
 957   // The tid and thread_status fields are only present starting in 1.5, so don't go fatal.
 958   compute_optional_offset(_tid_offset, k, vmSymbols::thread_id_name(), vmSymbols::long_signature());
 959   compute_optional_offset(_thread_status_offset, k, vmSymbols::thread_status_name(), vmSymbols::int_signature());
 960   // The parkBlocker field is only present starting in 1.6, so don't go fatal.
 961   compute_optional_offset(_park_blocker_offset, k, vmSymbols::park_blocker_name(), vmSymbols::object_signature());
 962   compute_optional_offset(_park_event_offset, k, vmSymbols::park_event_name(),
 963  vmSymbols::long_signature());
 964 }
 965 
 966 
 967 JavaThread* java_lang_Thread::thread(oop java_thread) {
 968   return (JavaThread*)java_thread->address_field(_eetop_offset);
 969 }
 970 
 971 
 972 void java_lang_Thread::set_thread(oop java_thread, JavaThread* thread) {
 973   java_thread->address_field_put(_eetop_offset, (address)thread);
 974 }
 975 
 976 
 977 oop java_lang_Thread::name(oop java_thread) {
 978   oop name = java_thread->obj_field(_name_offset);
 979   assert(name != NULL, "thread name is NULL");
 980   return name;
 981 }
 982 
 983 
 984 void java_lang_Thread::set_name(oop java_thread, oop name) {
 985   assert(java_thread->obj_field(_name_offset) == NULL, "name should be NULL");
 986   java_thread->obj_field_put(_name_offset, name);
 987 }
 988 
 989 
 990 ThreadPriority java_lang_Thread::priority(oop java_thread) {
 991   return (ThreadPriority)java_thread->int_field(_priority_offset);
 992 }
 993 
 994 
 995 void java_lang_Thread::set_priority(oop java_thread, ThreadPriority priority) {
 996   java_thread->int_field_put(_priority_offset, priority);
 997 }
 998 
 999 
1000 oop java_lang_Thread::threadGroup(oop java_thread) {
1001   return java_thread->obj_field(_group_offset);
1002 }
1003 
1004