src/share/vm/prims/jni.cpp

changeset 8189
c60b9a314312
parent 7866
3300e511bc3a
child 8373
35bfaf7f9021
equal deleted inserted replaced
8187:3ad3f93fe3d2 8189:c60b9a314312
1794 return ret;\ 1794 return ret;\
1795 JNI_END 1795 JNI_END
1796 1796
1797 // the runtime type of subword integral basic types is integer 1797 // the runtime type of subword integral basic types is integer
1798 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN 1798 DEFINE_CALLMETHODV(jboolean, Boolean, T_BOOLEAN
1799 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1799 , HOTSPOT_JNI_CALLBOOLEANMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1800 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) 1800 HOTSPOT_JNI_CALLBOOLEANMETHODV_RETURN(_ret_ref))
1801 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE 1801 DEFINE_CALLMETHODV(jbyte, Byte, T_BYTE
1802 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1802 , HOTSPOT_JNI_CALLBYTEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1803 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) 1803 HOTSPOT_JNI_CALLBYTEMETHODV_RETURN(_ret_ref))
1804 DEFINE_CALLMETHODV(jchar, Char, T_CHAR 1804 DEFINE_CALLMETHODV(jchar, Char, T_CHAR
1805 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1805 , HOTSPOT_JNI_CALLCHARMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1806 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) 1806 HOTSPOT_JNI_CALLCHARMETHODV_RETURN(_ret_ref))
1807 DEFINE_CALLMETHODV(jshort, Short, T_SHORT 1807 DEFINE_CALLMETHODV(jshort, Short, T_SHORT
1808 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1808 , HOTSPOT_JNI_CALLSHORTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1809 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) 1809 HOTSPOT_JNI_CALLSHORTMETHODV_RETURN(_ret_ref))
1810 1810
1811 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT 1811 DEFINE_CALLMETHODV(jobject, Object, T_OBJECT
1812 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1812 , HOTSPOT_JNI_CALLOBJECTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1813 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) 1813 HOTSPOT_JNI_CALLOBJECTMETHODV_RETURN(_ret_ref))
1814 DEFINE_CALLMETHODV(jint, Int, T_INT, 1814 DEFINE_CALLMETHODV(jint, Int, T_INT,
1815 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1815 HOTSPOT_JNI_CALLINTMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1816 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) 1816 HOTSPOT_JNI_CALLINTMETHODV_RETURN(_ret_ref))
1817 DEFINE_CALLMETHODV(jlong, Long, T_LONG 1817 DEFINE_CALLMETHODV(jlong, Long, T_LONG
1818 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1818 , HOTSPOT_JNI_CALLLONGMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1819 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) 1819 HOTSPOT_JNI_CALLLONGMETHODV_RETURN(_ret_ref))
1820 // Float and double probes don't return value because dtrace doesn't currently support it 1820 // Float and double probes don't return value because dtrace doesn't currently support it
1821 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT 1821 DEFINE_CALLMETHODV(jfloat, Float, T_FLOAT
1822 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1822 , HOTSPOT_JNI_CALLFLOATMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1823 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) 1823 HOTSPOT_JNI_CALLFLOATMETHODV_RETURN())
1824 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE 1824 DEFINE_CALLMETHODV(jdouble, Double, T_DOUBLE
1825 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1825 , HOTSPOT_JNI_CALLDOUBLEMETHODV_ENTRY(env, obj, (uintptr_t)methodID),
1826 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) 1826 HOTSPOT_JNI_CALLDOUBLEMETHODV_RETURN())
1827 1827
1828 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \ 1828 #define DEFINE_CALLMETHODA(ResultType, Result, Tag \
1829 , EntryProbe, ReturnProbe) \ 1829 , EntryProbe, ReturnProbe) \
1830 \ 1830 \
1831 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \ 1831 DT_RETURN_MARK_DECL_FOR(Result, Call##Result##MethodA, ResultType \
1846 return ret;\ 1846 return ret;\
1847 JNI_END 1847 JNI_END
1848 1848
1849 // the runtime type of subword integral basic types is integer 1849 // the runtime type of subword integral basic types is integer
1850 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN 1850 DEFINE_CALLMETHODA(jboolean, Boolean, T_BOOLEAN
1851 , HOTSPOT_JNI_CALLBOOLEANMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1851 , HOTSPOT_JNI_CALLBOOLEANMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1852 HOTSPOT_JNI_CALLBOOLEANMETHOD_RETURN(_ret_ref)) 1852 HOTSPOT_JNI_CALLBOOLEANMETHODA_RETURN(_ret_ref))
1853 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE 1853 DEFINE_CALLMETHODA(jbyte, Byte, T_BYTE
1854 , HOTSPOT_JNI_CALLBYTEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1854 , HOTSPOT_JNI_CALLBYTEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1855 HOTSPOT_JNI_CALLBYTEMETHOD_RETURN(_ret_ref)) 1855 HOTSPOT_JNI_CALLBYTEMETHODA_RETURN(_ret_ref))
1856 DEFINE_CALLMETHODA(jchar, Char, T_CHAR 1856 DEFINE_CALLMETHODA(jchar, Char, T_CHAR
1857 , HOTSPOT_JNI_CALLCHARMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1857 , HOTSPOT_JNI_CALLCHARMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1858 HOTSPOT_JNI_CALLCHARMETHOD_RETURN(_ret_ref)) 1858 HOTSPOT_JNI_CALLCHARMETHODA_RETURN(_ret_ref))
1859 DEFINE_CALLMETHODA(jshort, Short, T_SHORT 1859 DEFINE_CALLMETHODA(jshort, Short, T_SHORT
1860 , HOTSPOT_JNI_CALLSHORTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1860 , HOTSPOT_JNI_CALLSHORTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1861 HOTSPOT_JNI_CALLSHORTMETHOD_RETURN(_ret_ref)) 1861 HOTSPOT_JNI_CALLSHORTMETHODA_RETURN(_ret_ref))
1862 1862
1863 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT 1863 DEFINE_CALLMETHODA(jobject, Object, T_OBJECT
1864 , HOTSPOT_JNI_CALLOBJECTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1864 , HOTSPOT_JNI_CALLOBJECTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1865 HOTSPOT_JNI_CALLOBJECTMETHOD_RETURN(_ret_ref)) 1865 HOTSPOT_JNI_CALLOBJECTMETHODA_RETURN(_ret_ref))
1866 DEFINE_CALLMETHODA(jint, Int, T_INT, 1866 DEFINE_CALLMETHODA(jint, Int, T_INT,
1867 HOTSPOT_JNI_CALLINTMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1867 HOTSPOT_JNI_CALLINTMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1868 HOTSPOT_JNI_CALLINTMETHOD_RETURN(_ret_ref)) 1868 HOTSPOT_JNI_CALLINTMETHODA_RETURN(_ret_ref))
1869 DEFINE_CALLMETHODA(jlong, Long, T_LONG 1869 DEFINE_CALLMETHODA(jlong, Long, T_LONG
1870 , HOTSPOT_JNI_CALLLONGMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1870 , HOTSPOT_JNI_CALLLONGMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1871 HOTSPOT_JNI_CALLLONGMETHOD_RETURN(_ret_ref)) 1871 HOTSPOT_JNI_CALLLONGMETHODA_RETURN(_ret_ref))
1872 // Float and double probes don't return value because dtrace doesn't currently support it 1872 // Float and double probes don't return value because dtrace doesn't currently support it
1873 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT 1873 DEFINE_CALLMETHODA(jfloat, Float, T_FLOAT
1874 , HOTSPOT_JNI_CALLFLOATMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1874 , HOTSPOT_JNI_CALLFLOATMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1875 HOTSPOT_JNI_CALLFLOATMETHOD_RETURN()) 1875 HOTSPOT_JNI_CALLFLOATMETHODA_RETURN())
1876 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE 1876 DEFINE_CALLMETHODA(jdouble, Double, T_DOUBLE
1877 , HOTSPOT_JNI_CALLDOUBLEMETHOD_ENTRY(env, obj, (uintptr_t)methodID), 1877 , HOTSPOT_JNI_CALLDOUBLEMETHODA_ENTRY(env, obj, (uintptr_t)methodID),
1878 HOTSPOT_JNI_CALLDOUBLEMETHOD_RETURN()) 1878 HOTSPOT_JNI_CALLDOUBLEMETHODA_RETURN())
1879 1879
1880 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN()); 1880 DT_VOID_RETURN_MARK_DECL(CallVoidMethod, HOTSPOT_JNI_CALLVOIDMETHOD_RETURN());
1881 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN()); 1881 DT_VOID_RETURN_MARK_DECL(CallVoidMethodV, HOTSPOT_JNI_CALLVOIDMETHODV_RETURN());
1882 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN()); 1882 DT_VOID_RETURN_MARK_DECL(CallVoidMethodA, HOTSPOT_JNI_CALLVOIDMETHODA_RETURN());
1883 1883
3135 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \ 3135 id->holder()->java_mirror()-> Fieldname##_field_put (id->offset(), value); \
3136 ReturnProbe;\ 3136 ReturnProbe;\
3137 JNI_END 3137 JNI_END
3138 3138
3139 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z 3139 DEFINE_SETSTATICFIELD(jboolean, bool, Boolean, 'Z', z
3140 , HOTSPOT_JNI_SETBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value), 3140 , HOTSPOT_JNI_SETSTATICBOOLEANFIELD_ENTRY(env, clazz, (uintptr_t)fieldID, value),
3141 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN()) 3141 HOTSPOT_JNI_SETBOOLEANFIELD_RETURN())
3142 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b 3142 DEFINE_SETSTATICFIELD(jbyte, byte, Byte, 'B', b
3143 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value), 3143 , HOTSPOT_JNI_SETSTATICBYTEFIELD_ENTRY(env, clazz, (uintptr_t) fieldID, value),
3144 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN()) 3144 HOTSPOT_JNI_SETSTATICBYTEFIELD_RETURN())
3145 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c 3145 DEFINE_SETSTATICFIELD(jchar, char, Char, 'C', c

mercurial