comparison src/share/vm/prims/jni.cpp @ 14179:dbcb1dd0785b

8029726: On OS X some dtrace probe names are mismatched with Solaris 8029727: On OS X dtrace probes Call<type>MethodA/Call<type>MethodV are not fired. 8029728: On OS X dtrace probes SetStaticBooleanField are not fired Reviewed-by: kamg, dsamersoff
author sla
date Wed, 18 Dec 2013 08:39:06 +0100
parents 1d1ea10fe09f
children a3ba776d6ab6 44315152d434
comparison
equal deleted inserted replaced
14178:0f2de9d724a9 14179:dbcb1dd0785b
1802 return ret;\ 1802 return ret;\
1803 JNI_END 1803 JNI_END
1804 1804
1805 // the runtime type of subword integral basic types is integer 1805 // the runtime type of subword integral basic types is integer
1806 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN 1806 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN
1807 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1807 , HOTSPOT_JNI_CALLBOOLEANMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1808 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) 1808 HOTSPOT_JNI_CALLBOOLEANMETHODV_RETURN(_ret_ref))
1809 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE 1809 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE
1810 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1810 , HOTSPOT_JNI_CALLBYTEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1811 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) 1811 HOTSPOT_JNI_CALLBYTEMETHODV_RETURN(_ret_ref))
1812 DEFINE_CALLMETHODV(jchar, Char, T_CHAR 1812 DEFINE_CALLMETHODV(jchar, Char, T_CHAR
1813 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1813 , HOTSPOT_JNI_CALLCHARMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1814 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) 1814 HOTSPOT_JNI_CALLCHARMETHODV_RETURN(_ret_ref))
1815 DEFINE_CALLMETHODV(jshort, Short, T_SHORT 1815 DEFINE_CALLMETHODV(jshort, Short, T_SHORT
1816 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1816 , HOTSPOT_JNI_CALLSHORTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1817 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) 1817 HOTSPOT_JNI_CALLSHORTMETHODV_RETURN(_ret_ref))
1818 1818
1819 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT 1819 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT
1820 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1820 , HOTSPOT_JNI_CALLOBJECTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1821 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) 1821 HOTSPOT_JNI_CALLOBJECTMETHODV_RETURN(_ret_ref))
1822 DEFINE_CALLMETHODV(jint, Int, T_INT, 1822 DEFINE_CALLMETHODV(jint, Int, T_INT,
1823 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1823 HOTSPOT_JNI_CALLINTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1824 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) 1824 HOTSPOT_JNI_CALLINTMETHODV_RETURN(_ret_ref))
1825 DEFINE_CALLMETHODV(jlong, Long, T_LONG 1825 DEFINE_CALLMETHODV(jlong, Long, T_LONG
1826 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1826 , HOTSPOT_JNI_CALLLONGMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1827 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) 1827 HOTSPOT_JNI_CALLLONGMETHODV_RETURN(_ret_ref))
1828 // Float and double probes don't return value because dtrace doesn't currently support it 1828 // Float and double probes don't return value because dtrace doesn't currently support it
1829 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT 1829 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT
1830 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1830 , HOTSPOT_JNI_CALLFLOATMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1831 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) 1831 HOTSPOT_JNI_CALLFLOATMETHODV_RETURN())
1832 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE 1832 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE
1833 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1833 , HOTSPOT_JNI_CALLDOUBLEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1834 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) 1834 HOTSPOT_JNI_CALLDOUBLEMETHODV_RETURN())
1835 1835
1836 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ 1836 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \
1837 , EntryProbe, ReturnProbe) \ 1837 , EntryProbe, ReturnProbe) \
1838 \ 1838 \
1839 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ 1839 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \
1854 return ret;\ 1854 return ret;\
1855 JNI_END 1855 JNI_END
1856 1856
1857 // the runtime type of subword integral basic types is integer 1857 // the runtime type of subword integral basic types is integer
1858 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN 1858 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN
1859 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1859 , HOTSPOT_JNI_CALLBOOLEANMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1860 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) 1860 HOTSPOT_JNI_CALLBOOLEANMETHODA_RETURN(_ret_ref))
1861 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE 1861 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE
1862 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1862 , HOTSPOT_JNI_CALLBYTEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1863 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) 1863 HOTSPOT_JNI_CALLBYTEMETHODA_RETURN(_ret_ref))
1864 DEFINE_CALLMETHODA(jchar, Char, T_CHAR 1864 DEFINE_CALLMETHODA(jchar, Char, T_CHAR
1865 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1865 , HOTSPOT_JNI_CALLCHARMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1866 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) 1866 HOTSPOT_JNI_CALLCHARMETHODA_RETURN(_ret_ref))
1867 DEFINE_CALLMETHODA(jshort, Short, T_SHORT 1867 DEFINE_CALLMETHODA(jshort, Short, T_SHORT
1868 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1868 , HOTSPOT_JNI_CALLSHORTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1869 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) 1869 HOTSPOT_JNI_CALLSHORTMETHODA_RETURN(_ret_ref))
1870 1870
1871 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT 1871 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT
1872 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1872 , HOTSPOT_JNI_CALLOBJECTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1873 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) 1873 HOTSPOT_JNI_CALLOBJECTMETHODA_RETURN(_ret_ref))
1874 DEFINE_CALLMETHODA(jint, Int, T_INT, 1874 DEFINE_CALLMETHODA(jint, Int, T_INT,
1875 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1875 HOTSPOT_JNI_CALLINTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1876 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) 1876 HOTSPOT_JNI_CALLINTMETHODA_RETURN(_ret_ref))
1877 DEFINE_CALLMETHODA(jlong, Long, T_LONG 1877 DEFINE_CALLMETHODA(jlong, Long, T_LONG
1878 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1878 , HOTSPOT_JNI_CALLLONGMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1879 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) 1879 HOTSPOT_JNI_CALLLONGMETHODA_RETURN(_ret_ref))
1880 // Float and double probes don't return value because dtrace doesn't currently support it 1880 // Float and double probes don't return value because dtrace doesn't currently support it
1881 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT 1881 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT
1882 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1882 , HOTSPOT_JNI_CALLFLOATMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1883 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) 1883 HOTSPOT_JNI_CALLFLOATMETHODA_RETURN())
1884 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE 1884 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE
1885 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1885 , HOTSPOT_JNI_CALLDOUBLEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1886 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) 1886 HOTSPOT_JNI_CALLDOUBLEMETHODA_RETURN())
1887 1887
1888 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); 1888 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN());
1889 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); 1889 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN());
1890 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); 1890 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN());
1891 1891
3143 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ 3143 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \
3144 ReturnProbe;\ 3144 ReturnProbe;\
3145 JNI_END 3145 JNI_END
3146 3146
3147 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z 3147 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z
3148 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), 3148 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value),
3149 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) 3149 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN())
3150 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b 3150 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b
3151 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), 3151 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
3152 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) 3152 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN())
3153 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c 3153 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c