133 verify_instance_jfieldID(k, id); 134 } 135 return raw_instance_offset(id); 136 } 137 138 static jfieldID to_static_jfieldID(JNIid* id) { 139 assert(id->is_static_field_id(), "from_JNIid, but not static field id"); 140 jfieldID result = (jfieldID) id; 141 assert(from_static_jfieldID(result) == id, "must produce the same static id"); 142 return result; 143 } 144 145 static JNIid* from_static_jfieldID(jfieldID id) { 146 assert(jfieldIDWorkaround::is_static_jfieldID(id), 147 "to_JNIid, but not static jfieldID"); 148 JNIid* result = (JNIid*) id; 149 assert(result->is_static_field_id(), "to_JNIid, but not static field id"); 150 return result; 151 } 152 153 static jfieldID to_jfieldID(instanceKlassHandle k, int offset, bool is_static) { 154 if (is_static) { 155 JNIid *id = k->jni_id_for(offset); 156 debug_only(id->set_is_static_field_id()); 157 return jfieldIDWorkaround::to_static_jfieldID(id); 158 } else { 159 return jfieldIDWorkaround::to_instance_jfieldID(k(), offset); 160 } 161 } 162 }; 163 164 #endif // SHARE_VM_RUNTIME_JFIELDIDWORKAROUND_HPP | 133 verify_instance_jfieldID(k, id); 134 } 135 return raw_instance_offset(id); 136 } 137 138 static jfieldID to_static_jfieldID(JNIid* id) { 139 assert(id->is_static_field_id(), "from_JNIid, but not static field id"); 140 jfieldID result = (jfieldID) id; 141 assert(from_static_jfieldID(result) == id, "must produce the same static id"); 142 return result; 143 } 144 145 static JNIid* from_static_jfieldID(jfieldID id) { 146 assert(jfieldIDWorkaround::is_static_jfieldID(id), 147 "to_JNIid, but not static jfieldID"); 148 JNIid* result = (JNIid*) id; 149 assert(result->is_static_field_id(), "to_JNIid, but not static field id"); 150 return result; 151 } 152 153 static jfieldID to_jfieldID(InstanceKlass* k, int offset, bool is_static) { 154 if (is_static) { 155 JNIid *id = k->jni_id_for(offset); 156 debug_only(id->set_is_static_field_id()); 157 return jfieldIDWorkaround::to_static_jfieldID(id); 158 } else { 159 return jfieldIDWorkaround::to_instance_jfieldID(k, offset); 160 } 161 } 162 }; 163 164 #endif // SHARE_VM_RUNTIME_JFIELDIDWORKAROUND_HPP |