2175 if (JvmtiExport::should_post_field_modification()) { \ |
2175 if (JvmtiExport::should_post_field_modification()) { \ |
2176 jvalue field_value; \ |
2176 jvalue field_value; \ |
2177 field_value.unionType = value; \ |
2177 field_value.unionType = value; \ |
2178 o = JvmtiExport::jni_SetField_probe_nh(thread, obj, o, k, fieldID, false, SigType, (jvalue *)&field_value); \ |
2178 o = JvmtiExport::jni_SetField_probe_nh(thread, obj, o, k, fieldID, false, SigType, (jvalue *)&field_value); \ |
2179 } \ |
2179 } \ |
2180 if (SigType == 'Z') { value = ((jboolean)value) & 1; } \ |
2180 if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1; } \ |
2181 o->Fieldname##_field_put(offset, value); \ |
2181 o->Fieldname##_field_put(offset, value); \ |
2182 ReturnProbe; \ |
2182 ReturnProbe; \ |
2183 JNI_END |
2183 JNI_END |
2184 |
2184 |
2185 DEFINE_SETFIELD(jboolean, bool, Boolean, 'Z', z |
2185 DEFINE_SETFIELD(jboolean, bool, Boolean, JVM_SIGNATURE_BOOLEAN, z |
2186 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2186 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2187 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) |
2187 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) |
2188 DEFINE_SETFIELD(jbyte, byte, Byte, 'B', b |
2188 DEFINE_SETFIELD(jbyte, byte, Byte, JVM_SIGNATURE_BYTE, b |
2189 , HOTSPOT_JNI_SETBYTEFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2189 , HOTSPOT_JNI_SETBYTEFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2190 HOTSPOT_JNI_SETBYTEFIELD_RETURN()) |
2190 HOTSPOT_JNI_SETBYTEFIELD_RETURN()) |
2191 DEFINE_SETFIELD(jchar, char, Char, 'C', c |
2191 DEFINE_SETFIELD(jchar, char, Char, JVM_SIGNATURE_CHAR, c |
2192 , HOTSPOT_JNI_SETCHARFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2192 , HOTSPOT_JNI_SETCHARFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2193 HOTSPOT_JNI_SETCHARFIELD_RETURN()) |
2193 HOTSPOT_JNI_SETCHARFIELD_RETURN()) |
2194 DEFINE_SETFIELD(jshort, short, Short, 'S', s |
2194 DEFINE_SETFIELD(jshort, short, Short, JVM_SIGNATURE_SHORT, s |
2195 , HOTSPOT_JNI_SETSHORTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2195 , HOTSPOT_JNI_SETSHORTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2196 HOTSPOT_JNI_SETSHORTFIELD_RETURN()) |
2196 HOTSPOT_JNI_SETSHORTFIELD_RETURN()) |
2197 DEFINE_SETFIELD(jint, int, Int, 'I', i |
2197 DEFINE_SETFIELD(jint, int, Int, JVM_SIGNATURE_INT, i |
2198 , HOTSPOT_JNI_SETINTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2198 , HOTSPOT_JNI_SETINTFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2199 HOTSPOT_JNI_SETINTFIELD_RETURN()) |
2199 HOTSPOT_JNI_SETINTFIELD_RETURN()) |
2200 DEFINE_SETFIELD(jlong, long, Long, 'J', j |
2200 DEFINE_SETFIELD(jlong, long, Long, JVM_SIGNATURE_LONG, j |
2201 , HOTSPOT_JNI_SETLONGFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2201 , HOTSPOT_JNI_SETLONGFIELD_ENTRY(env, obj, (uintptr_t)fieldID, value), |
2202 HOTSPOT_JNI_SETLONGFIELD_RETURN()) |
2202 HOTSPOT_JNI_SETLONGFIELD_RETURN()) |
2203 // Float and double probes don't return value because dtrace doesn't currently support it |
2203 // Float and double probes don't return value because dtrace doesn't currently support it |
2204 DEFINE_SETFIELD(jfloat, float, Float, 'F', f |
2204 DEFINE_SETFIELD(jfloat, float, Float, JVM_SIGNATURE_FLOAT, f |
2205 , HOTSPOT_JNI_SETFLOATFIELD_ENTRY(env, obj, (uintptr_t)fieldID), |
2205 , HOTSPOT_JNI_SETFLOATFIELD_ENTRY(env, obj, (uintptr_t)fieldID), |
2206 HOTSPOT_JNI_SETFLOATFIELD_RETURN()) |
2206 HOTSPOT_JNI_SETFLOATFIELD_RETURN()) |
2207 DEFINE_SETFIELD(jdouble, double, Double, 'D', d |
2207 DEFINE_SETFIELD(jdouble, double, Double, JVM_SIGNATURE_DOUBLE, d |
2208 , HOTSPOT_JNI_SETDOUBLEFIELD_ENTRY(env, obj, (uintptr_t)fieldID), |
2208 , HOTSPOT_JNI_SETDOUBLEFIELD_ENTRY(env, obj, (uintptr_t)fieldID), |
2209 HOTSPOT_JNI_SETDOUBLEFIELD_RETURN()) |
2209 HOTSPOT_JNI_SETDOUBLEFIELD_RETURN()) |
2210 |
2210 |
2211 DT_RETURN_MARK_DECL(ToReflectedField, jobject |
2211 DT_RETURN_MARK_DECL(ToReflectedField, jobject |
2212 , HOTSPOT_JNI_TOREFLECTEDFIELD_RETURN(_ret_ref)); |
2212 , HOTSPOT_JNI_TOREFLECTEDFIELD_RETURN(_ret_ref)); |
2374 if (JvmtiExport::should_post_field_modification()) { \ |
2374 if (JvmtiExport::should_post_field_modification()) { \ |
2375 jvalue field_value; \ |
2375 jvalue field_value; \ |
2376 field_value.unionType = value; \ |
2376 field_value.unionType = value; \ |
2377 JvmtiExport::jni_SetField_probe(thread, NULL, NULL, id->holder(), fieldID, true, SigType, (jvalue *)&field_value); \ |
2377 JvmtiExport::jni_SetField_probe(thread, NULL, NULL, id->holder(), fieldID, true, SigType, (jvalue *)&field_value); \ |
2378 } \ |
2378 } \ |
2379 if (SigType == 'Z') { value = ((jboolean)value) & 1; } \ |
2379 if (SigType == JVM_SIGNATURE_BOOLEAN) { value = ((jboolean)value) & 1; } \ |
2380 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ |
2380 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ |
2381 ReturnProbe;\ |
2381 ReturnProbe;\ |
2382 JNI_END |
2382 JNI_END |
2383 |
2383 |
2384 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z |
2384 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, JVM_SIGNATURE_BOOLEAN, z |
2385 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), |
2385 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), |
2386 HOTSPOT_JNI_SETSTATICBOOLEANFIELD_RETURN()) |
2386 HOTSPOT_JNI_SETSTATICBOOLEANFIELD_RETURN()) |
2387 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b |
2387 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, JVM_SIGNATURE_BYTE, b |
2388 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2388 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2389 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) |
2389 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) |
2390 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c |
2390 DEFINE_SETSTATICFIELD(jchar, char, Char, JVM_SIGNATURE_CHAR, c |
2391 , HOTSPOT_JNI_SETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2391 , HOTSPOT_JNI_SETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2392 HOTSPOT_JNI_SETSTATICCHARFIELD_RETURN()) |
2392 HOTSPOT_JNI_SETSTATICCHARFIELD_RETURN()) |
2393 DEFINE_SETSTATICFIELD(jshort, short, Short, 'S', s |
2393 DEFINE_SETSTATICFIELD(jshort, short, Short, JVM_SIGNATURE_SHORT, s |
2394 , HOTSPOT_JNI_SETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2394 , HOTSPOT_JNI_SETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2395 HOTSPOT_JNI_SETSTATICSHORTFIELD_RETURN()) |
2395 HOTSPOT_JNI_SETSTATICSHORTFIELD_RETURN()) |
2396 DEFINE_SETSTATICFIELD(jint, int, Int, 'I', i |
2396 DEFINE_SETSTATICFIELD(jint, int, Int, JVM_SIGNATURE_INT, i |
2397 , HOTSPOT_JNI_SETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2397 , HOTSPOT_JNI_SETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2398 HOTSPOT_JNI_SETSTATICINTFIELD_RETURN()) |
2398 HOTSPOT_JNI_SETSTATICINTFIELD_RETURN()) |
2399 DEFINE_SETSTATICFIELD(jlong, long, Long, 'J', j |
2399 DEFINE_SETSTATICFIELD(jlong, long, Long, JVM_SIGNATURE_LONG, j |
2400 , HOTSPOT_JNI_SETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2400 , HOTSPOT_JNI_SETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), |
2401 HOTSPOT_JNI_SETSTATICLONGFIELD_RETURN()) |
2401 HOTSPOT_JNI_SETSTATICLONGFIELD_RETURN()) |
2402 // Float and double probes don't return value because dtrace doesn't currently support it |
2402 // Float and double probes don't return value because dtrace doesn't currently support it |
2403 DEFINE_SETSTATICFIELD(jfloat, float, Float, 'F', f |
2403 DEFINE_SETSTATICFIELD(jfloat, float, Float, JVM_SIGNATURE_FLOAT, f |
2404 , HOTSPOT_JNI_SETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), |
2404 , HOTSPOT_JNI_SETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), |
2405 HOTSPOT_JNI_SETSTATICFLOATFIELD_RETURN()) |
2405 HOTSPOT_JNI_SETSTATICFLOATFIELD_RETURN()) |
2406 DEFINE_SETSTATICFIELD(jdouble, double, Double, 'D', d |
2406 DEFINE_SETSTATICFIELD(jdouble, double, Double, JVM_SIGNATURE_DOUBLE, d |
2407 , HOTSPOT_JNI_SETSTATICDOUBLEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), |
2407 , HOTSPOT_JNI_SETSTATICDOUBLEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID), |
2408 HOTSPOT_JNI_SETSTATICDOUBLEFIELD_RETURN()) |
2408 HOTSPOT_JNI_SETSTATICDOUBLEFIELD_RETURN()) |
2409 |
2409 |
2410 // |
2410 // |
2411 // String Operations |
2411 // String Operations |