src/share/vm/prims/jni.cpp

Print this page




2403 \
2404 JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \
2405   JNIWrapper("SetStatic" XSTR(Result) "Field"); \
2406   EntryProbe; \
2407 \
2408   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
2409   assert(id->is_static_field_id(), "invalid static field id"); \
2410   /* Keep JVMTI addition small and only check enabled flag here. */ \
2411   /* jni_SetField_probe() assumes that is okay to create handles. */ \
2412   if (JvmtiExport::should_post_field_modification()) { \
2413     jvalue field_value; \
2414     field_value.unionType = value; \
2415     JvmtiExport::jni_SetField_probe(thread, NULL, NULL, id->holder(), fieldID, true, SigType, (jvalue *)&field_value); \
2416   } \
2417   id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \
2418   ReturnProbe;\
2419 JNI_END
2420 
2421 DEFINE_SETSTATICFIELD(jboolean, bool,   Boolean, 'Z', z
2422                       , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value),
2423                       HOTSPOT_JNI_SETBOOLEANFIELD_RETURN())
2424 DEFINE_SETSTATICFIELD(jbyte,    byte,   Byte,    'B', b
2425                       , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2426                       HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN())
2427 DEFINE_SETSTATICFIELD(jchar,    char,   Char,    'C', c
2428                       , HOTSPOT_JNI_SETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2429                       HOTSPOT_JNI_SETSTATICCHARFIELD_RETURN())
2430 DEFINE_SETSTATICFIELD(jshort,   short,  Short,   'S', s
2431                       , HOTSPOT_JNI_SETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2432                       HOTSPOT_JNI_SETSTATICSHORTFIELD_RETURN())
2433 DEFINE_SETSTATICFIELD(jint,     int,    Int,     'I', i
2434                       , HOTSPOT_JNI_SETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2435                       HOTSPOT_JNI_SETSTATICINTFIELD_RETURN())
2436 DEFINE_SETSTATICFIELD(jlong,    long,   Long,    'J', j
2437                       , HOTSPOT_JNI_SETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2438                       HOTSPOT_JNI_SETSTATICLONGFIELD_RETURN())
2439 // Float and double probes don't return value because dtrace doesn't currently support it
2440 DEFINE_SETSTATICFIELD(jfloat,   float,  Float,   'F', f
2441                       , HOTSPOT_JNI_SETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID),
2442                       HOTSPOT_JNI_SETSTATICFLOATFIELD_RETURN())
2443 DEFINE_SETSTATICFIELD(jdouble,  double, Double,  'D', d




2403 \
2404 JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \
2405   JNIWrapper("SetStatic" XSTR(Result) "Field"); \
2406   EntryProbe; \
2407 \
2408   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
2409   assert(id->is_static_field_id(), "invalid static field id"); \
2410   /* Keep JVMTI addition small and only check enabled flag here. */ \
2411   /* jni_SetField_probe() assumes that is okay to create handles. */ \
2412   if (JvmtiExport::should_post_field_modification()) { \
2413     jvalue field_value; \
2414     field_value.unionType = value; \
2415     JvmtiExport::jni_SetField_probe(thread, NULL, NULL, id->holder(), fieldID, true, SigType, (jvalue *)&field_value); \
2416   } \
2417   id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \
2418   ReturnProbe;\
2419 JNI_END
2420 
2421 DEFINE_SETSTATICFIELD(jboolean, bool,   Boolean, 'Z', z
2422                       , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value),
2423                       HOTSPOT_JNI_SETSTATICBOOLEANFIELD_RETURN())
2424 DEFINE_SETSTATICFIELD(jbyte,    byte,   Byte,    'B', b
2425                       , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2426                       HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN())
2427 DEFINE_SETSTATICFIELD(jchar,    char,   Char,    'C', c
2428                       , HOTSPOT_JNI_SETSTATICCHARFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2429                       HOTSPOT_JNI_SETSTATICCHARFIELD_RETURN())
2430 DEFINE_SETSTATICFIELD(jshort,   short,  Short,   'S', s
2431                       , HOTSPOT_JNI_SETSTATICSHORTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2432                       HOTSPOT_JNI_SETSTATICSHORTFIELD_RETURN())
2433 DEFINE_SETSTATICFIELD(jint,     int,    Int,     'I', i
2434                       , HOTSPOT_JNI_SETSTATICINTFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2435                       HOTSPOT_JNI_SETSTATICINTFIELD_RETURN())
2436 DEFINE_SETSTATICFIELD(jlong,    long,   Long,    'J', j
2437                       , HOTSPOT_JNI_SETSTATICLONGFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
2438                       HOTSPOT_JNI_SETSTATICLONGFIELD_RETURN())
2439 // Float and double probes don't return value because dtrace doesn't currently support it
2440 DEFINE_SETSTATICFIELD(jfloat,   float,  Float,   'F', f
2441                       , HOTSPOT_JNI_SETSTATICFLOATFIELD_ENTRY(env, clazz, (uintptr_t) fieldID),
2442                       HOTSPOT_JNI_SETSTATICFLOATFIELD_RETURN())
2443 DEFINE_SETSTATICFIELD(jdouble,  double, Double,  'D', d