Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(772)

Side by Side Diff: base/android/jni_generator/jni_generator_tests.py

Issue 40523002: Android: fixes for JNI with javap for java7. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Mandatory Signature: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/android/jni_generator/jni_generator.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Tests for jni_generator.py. 6 """Tests for jni_generator.py.
7 7
8 This test suite contains various tests for the JNI generator. 8 This test suite contains various tests for the JNI generator.
9 It exercises the low-level parser all the way up to the 9 It exercises the low-level parser all the way up to the
10 code generator and ensures the output matches a golden 10 code generator and ensures the output matches a golden
(...skipping 1565 matching lines...) Expand 10 before | Expand all | Expand 10 after
1576 jni_generator.GetMangledMethodName('open', 1576 jni_generator.GetMangledMethodName('open',
1577 [Param(name='p1', 1577 [Param(name='p1',
1578 datatype='java/lang/String'),], 1578 datatype='java/lang/String'),],
1579 'java/io/InputStream')) 1579 'java/io/InputStream'))
1580 1580
1581 def testFromJavaPGenerics(self): 1581 def testFromJavaPGenerics(self):
1582 contents = """ 1582 contents = """
1583 public abstract class java.util.HashSet<T> extends java.util.AbstractSet<E> 1583 public abstract class java.util.HashSet<T> extends java.util.AbstractSet<E>
1584 implements java.util.Set<E>, java.lang.Cloneable, java.io.Serializable { 1584 implements java.util.Set<E>, java.lang.Cloneable, java.io.Serializable {
1585 public void dummy(); 1585 public void dummy();
1586 Signature: ()V
1586 } 1587 }
1587 """ 1588 """
1588 jni_from_javap = jni_generator.JNIFromJavaP(contents.split('\n'), 1589 jni_from_javap = jni_generator.JNIFromJavaP(contents.split('\n'),
1589 TestOptions()) 1590 TestOptions())
1590 self.assertEquals(1, len(jni_from_javap.called_by_natives)) 1591 self.assertEquals(1, len(jni_from_javap.called_by_natives))
1591 golden_content = """\ 1592 golden_content = """\
1592 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1593 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
1593 // Use of this source code is governed by a BSD-style license that can be 1594 // Use of this source code is governed by a BSD-style license that can be
1594 // found in the LICENSE file. 1595 // found in the LICENSE file.
1595 1596
(...skipping 29 matching lines...) Expand all
1625 static void Java_HashSet_dummy(JNIEnv* env, jobject obj) __attribute__ 1626 static void Java_HashSet_dummy(JNIEnv* env, jobject obj) __attribute__
1626 ((unused)); 1627 ((unused));
1627 static void Java_HashSet_dummy(JNIEnv* env, jobject obj) { 1628 static void Java_HashSet_dummy(JNIEnv* env, jobject obj) {
1628 /* Must call RegisterNativesImpl() */ 1629 /* Must call RegisterNativesImpl() */
1629 DCHECK(g_HashSet_clazz); 1630 DCHECK(g_HashSet_clazz);
1630 jmethodID method_id = 1631 jmethodID method_id =
1631 base::android::MethodID::LazyGet< 1632 base::android::MethodID::LazyGet<
1632 base::android::MethodID::TYPE_INSTANCE>( 1633 base::android::MethodID::TYPE_INSTANCE>(
1633 env, g_HashSet_clazz, 1634 env, g_HashSet_clazz,
1634 "dummy", 1635 "dummy",
1635 1636 "()V",
1636 "("
1637 ")"
1638 "V",
1639 &g_HashSet_dummy); 1637 &g_HashSet_dummy);
1640 1638
1641 env->CallVoidMethod(obj, 1639 env->CallVoidMethod(obj,
1642 method_id); 1640 method_id);
1643 base::android::CheckException(env); 1641 base::android::CheckException(env);
1644 1642
1645 } 1643 }
1646 1644
1647 // Step 3: RegisterNatives. 1645 // Step 3: RegisterNatives.
1648 1646
1649 static bool RegisterNativesImpl(JNIEnv* env) { 1647 static bool RegisterNativesImpl(JNIEnv* env) {
1650 1648
1651 g_HashSet_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( 1649 g_HashSet_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
1652 base::android::GetClass(env, kHashSetClassPath).obj())); 1650 base::android::GetClass(env, kHashSetClassPath).obj()));
1653 return true; 1651 return true;
1654 } 1652 }
1655 } // namespace JNI_HashSet 1653 } // namespace JNI_HashSet
1656 1654
1657 #endif // java_util_HashSet_JNI 1655 #endif // java_util_HashSet_JNI
1658 """ 1656 """
1659 self.assertTextEquals(golden_content, jni_from_javap.GetContent()) 1657 self.assertTextEquals(golden_content, jni_from_javap.GetContent())
1660 1658
1659 def testSnippnetJavap6_7(self):
1660 content_javap6 = """
1661 public class java.util.HashSet {
1662 public boolean add(java.lang.Object);
1663 Signature: (Ljava/lang/Object;)Z
1664 }
1665 """
1666
1667 content_javap7 = """
1668 public class java.util.HashSet {
1669 public boolean add(E);
1670 Signature: (Ljava/lang/Object;)Z
1671 }
1672 """
1673 jni_from_javap6 = jni_generator.JNIFromJavaP(content_javap6.split('\n'),
1674 TestOptions())
1675 jni_from_javap7 = jni_generator.JNIFromJavaP(content_javap7.split('\n'),
1676 TestOptions())
1677 self.assertTrue(jni_from_javap6.GetContent())
1678 self.assertTrue(jni_from_javap7.GetContent())
1679 # Ensure the javap7 is correctly parsed and uses the Signature field rather
1680 # than the "E" parameter.
1681 self.assertTextEquals(jni_from_javap6.GetContent(),
1682 jni_from_javap7.GetContent())
1683
1661 def testFromJavaP(self): 1684 def testFromJavaP(self):
1662 contents = """ 1685 contents = """
1663 public abstract class java.io.InputStream extends java.lang.Object 1686 public abstract class java.io.InputStream extends
1664 implements java.io.Closeable{ 1687 java.lang.Object implements java.io.Closeable{
1665 public java.io.InputStream(); 1688 public java.io.InputStream();
1666 public int available() throws java.io.IOException; 1689 Signature: ()V
1667 public void close() throws java.io.IOException; 1690 public int available() throws java.io.IOException;
1668 public void mark(int); 1691 Signature: ()I
1669 public boolean markSupported(); 1692 public void close() throws java.io.IOException;
1670 public abstract int read() throws java.io.IOException; 1693 Signature: ()V
1671 public int read(byte[]) throws java.io.IOException; 1694 public void mark(int);
1672 public int read(byte[], int, int) throws java.io.IOException; 1695 Signature: (I)V
1673 public synchronized void reset() throws java.io.IOException; 1696 public boolean markSupported();
1674 public long skip(long) throws java.io.IOException; 1697 Signature: ()Z
1698 public abstract int read() throws java.io.IOException;
1699 Signature: ()I
1700 public int read(byte[]) throws java.io.IOException;
1701 Signature: ([B)I
1702 public int read(byte[], int, int) throws java.io.IOException;
1703 Signature: ([BII)I
1704 public synchronized void reset() throws java.io.IOException;
1705 Signature: ()V
1706 public long skip(long) throws java.io.IOException;
1707 Signature: (J)J
1675 } 1708 }
1676 """ 1709 """
1677 jni_from_javap = jni_generator.JNIFromJavaP(contents.split('\n'), 1710 jni_from_javap = jni_generator.JNIFromJavaP(contents.split('\n'),
1678 TestOptions()) 1711 TestOptions())
1679 self.assertEquals(10, len(jni_from_javap.called_by_natives)) 1712 self.assertEquals(10, len(jni_from_javap.called_by_natives))
1680 golden_content = """\ 1713 golden_content = """\
1681 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1714 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
1682 // Use of this source code is governed by a BSD-style license that can be 1715 // Use of this source code is governed by a BSD-style license that can be
1683 // found in the LICENSE file. 1716 // found in the LICENSE file.
1684 1717
(...skipping 29 matching lines...) Expand all
1714 static jint Java_InputStream_available(JNIEnv* env, jobject obj) __attribute__ 1747 static jint Java_InputStream_available(JNIEnv* env, jobject obj) __attribute__
1715 ((unused)); 1748 ((unused));
1716 static jint Java_InputStream_available(JNIEnv* env, jobject obj) { 1749 static jint Java_InputStream_available(JNIEnv* env, jobject obj) {
1717 /* Must call RegisterNativesImpl() */ 1750 /* Must call RegisterNativesImpl() */
1718 DCHECK(g_InputStream_clazz); 1751 DCHECK(g_InputStream_clazz);
1719 jmethodID method_id = 1752 jmethodID method_id =
1720 base::android::MethodID::LazyGet< 1753 base::android::MethodID::LazyGet<
1721 base::android::MethodID::TYPE_INSTANCE>( 1754 base::android::MethodID::TYPE_INSTANCE>(
1722 env, g_InputStream_clazz, 1755 env, g_InputStream_clazz,
1723 "available", 1756 "available",
1724 1757 "()I",
1725 "("
1726 ")"
1727 "I",
1728 &g_InputStream_available); 1758 &g_InputStream_available);
1729 1759
1730 jint ret = 1760 jint ret =
1731 env->CallIntMethod(obj, 1761 env->CallIntMethod(obj,
1732 method_id); 1762 method_id);
1733 base::android::CheckException(env); 1763 base::android::CheckException(env);
1734 return ret; 1764 return ret;
1735 } 1765 }
1736 1766
1737 static base::subtle::AtomicWord g_InputStream_close = 0; 1767 static base::subtle::AtomicWord g_InputStream_close = 0;
1738 static void Java_InputStream_close(JNIEnv* env, jobject obj) __attribute__ 1768 static void Java_InputStream_close(JNIEnv* env, jobject obj) __attribute__
1739 ((unused)); 1769 ((unused));
1740 static void Java_InputStream_close(JNIEnv* env, jobject obj) { 1770 static void Java_InputStream_close(JNIEnv* env, jobject obj) {
1741 /* Must call RegisterNativesImpl() */ 1771 /* Must call RegisterNativesImpl() */
1742 DCHECK(g_InputStream_clazz); 1772 DCHECK(g_InputStream_clazz);
1743 jmethodID method_id = 1773 jmethodID method_id =
1744 base::android::MethodID::LazyGet< 1774 base::android::MethodID::LazyGet<
1745 base::android::MethodID::TYPE_INSTANCE>( 1775 base::android::MethodID::TYPE_INSTANCE>(
1746 env, g_InputStream_clazz, 1776 env, g_InputStream_clazz,
1747 "close", 1777 "close",
1748 1778 "()V",
1749 "("
1750 ")"
1751 "V",
1752 &g_InputStream_close); 1779 &g_InputStream_close);
1753 1780
1754 env->CallVoidMethod(obj, 1781 env->CallVoidMethod(obj,
1755 method_id); 1782 method_id);
1756 base::android::CheckException(env); 1783 base::android::CheckException(env);
1757 1784
1758 } 1785 }
1759 1786
1760 static base::subtle::AtomicWord g_InputStream_mark = 0; 1787 static base::subtle::AtomicWord g_InputStream_mark = 0;
1761 static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0) 1788 static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0)
1762 __attribute__ ((unused)); 1789 __attribute__ ((unused));
1763 static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0) { 1790 static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0) {
1764 /* Must call RegisterNativesImpl() */ 1791 /* Must call RegisterNativesImpl() */
1765 DCHECK(g_InputStream_clazz); 1792 DCHECK(g_InputStream_clazz);
1766 jmethodID method_id = 1793 jmethodID method_id =
1767 base::android::MethodID::LazyGet< 1794 base::android::MethodID::LazyGet<
1768 base::android::MethodID::TYPE_INSTANCE>( 1795 base::android::MethodID::TYPE_INSTANCE>(
1769 env, g_InputStream_clazz, 1796 env, g_InputStream_clazz,
1770 "mark", 1797 "mark",
1771 1798 "(I)V",
1772 "("
1773 "I"
1774 ")"
1775 "V",
1776 &g_InputStream_mark); 1799 &g_InputStream_mark);
1777 1800
1778 env->CallVoidMethod(obj, 1801 env->CallVoidMethod(obj,
1779 method_id, p0); 1802 method_id, p0);
1780 base::android::CheckException(env); 1803 base::android::CheckException(env);
1781 1804
1782 } 1805 }
1783 1806
1784 static base::subtle::AtomicWord g_InputStream_markSupported = 0; 1807 static base::subtle::AtomicWord g_InputStream_markSupported = 0;
1785 static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) 1808 static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj)
1786 __attribute__ ((unused)); 1809 __attribute__ ((unused));
1787 static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) { 1810 static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) {
1788 /* Must call RegisterNativesImpl() */ 1811 /* Must call RegisterNativesImpl() */
1789 DCHECK(g_InputStream_clazz); 1812 DCHECK(g_InputStream_clazz);
1790 jmethodID method_id = 1813 jmethodID method_id =
1791 base::android::MethodID::LazyGet< 1814 base::android::MethodID::LazyGet<
1792 base::android::MethodID::TYPE_INSTANCE>( 1815 base::android::MethodID::TYPE_INSTANCE>(
1793 env, g_InputStream_clazz, 1816 env, g_InputStream_clazz,
1794 "markSupported", 1817 "markSupported",
1795 1818 "()Z",
1796 "("
1797 ")"
1798 "Z",
1799 &g_InputStream_markSupported); 1819 &g_InputStream_markSupported);
1800 1820
1801 jboolean ret = 1821 jboolean ret =
1802 env->CallBooleanMethod(obj, 1822 env->CallBooleanMethod(obj,
1803 method_id); 1823 method_id);
1804 base::android::CheckException(env); 1824 base::android::CheckException(env);
1805 return ret; 1825 return ret;
1806 } 1826 }
1807 1827
1808 static base::subtle::AtomicWord g_InputStream_readI = 0; 1828 static base::subtle::AtomicWord g_InputStream_readI = 0;
1809 static jint Java_InputStream_readI(JNIEnv* env, jobject obj) __attribute__ 1829 static jint Java_InputStream_readI(JNIEnv* env, jobject obj) __attribute__
1810 ((unused)); 1830 ((unused));
1811 static jint Java_InputStream_readI(JNIEnv* env, jobject obj) { 1831 static jint Java_InputStream_readI(JNIEnv* env, jobject obj) {
1812 /* Must call RegisterNativesImpl() */ 1832 /* Must call RegisterNativesImpl() */
1813 DCHECK(g_InputStream_clazz); 1833 DCHECK(g_InputStream_clazz);
1814 jmethodID method_id = 1834 jmethodID method_id =
1815 base::android::MethodID::LazyGet< 1835 base::android::MethodID::LazyGet<
1816 base::android::MethodID::TYPE_INSTANCE>( 1836 base::android::MethodID::TYPE_INSTANCE>(
1817 env, g_InputStream_clazz, 1837 env, g_InputStream_clazz,
1818 "read", 1838 "read",
1819 1839 "()I",
1820 "("
1821 ")"
1822 "I",
1823 &g_InputStream_readI); 1840 &g_InputStream_readI);
1824 1841
1825 jint ret = 1842 jint ret =
1826 env->CallIntMethod(obj, 1843 env->CallIntMethod(obj,
1827 method_id); 1844 method_id);
1828 base::android::CheckException(env); 1845 base::android::CheckException(env);
1829 return ret; 1846 return ret;
1830 } 1847 }
1831 1848
1832 static base::subtle::AtomicWord g_InputStream_readI_AB = 0; 1849 static base::subtle::AtomicWord g_InputStream_readI_AB = 0;
1833 static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) 1850 static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0)
1834 __attribute__ ((unused)); 1851 __attribute__ ((unused));
1835 static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) { 1852 static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) {
1836 /* Must call RegisterNativesImpl() */ 1853 /* Must call RegisterNativesImpl() */
1837 DCHECK(g_InputStream_clazz); 1854 DCHECK(g_InputStream_clazz);
1838 jmethodID method_id = 1855 jmethodID method_id =
1839 base::android::MethodID::LazyGet< 1856 base::android::MethodID::LazyGet<
1840 base::android::MethodID::TYPE_INSTANCE>( 1857 base::android::MethodID::TYPE_INSTANCE>(
1841 env, g_InputStream_clazz, 1858 env, g_InputStream_clazz,
1842 "read", 1859 "read",
1843 1860 "([B)I",
1844 "("
1845 "[B"
1846 ")"
1847 "I",
1848 &g_InputStream_readI_AB); 1861 &g_InputStream_readI_AB);
1849 1862
1850 jint ret = 1863 jint ret =
1851 env->CallIntMethod(obj, 1864 env->CallIntMethod(obj,
1852 method_id, p0); 1865 method_id, p0);
1853 base::android::CheckException(env); 1866 base::android::CheckException(env);
1854 return ret; 1867 return ret;
1855 } 1868 }
1856 1869
1857 static base::subtle::AtomicWord g_InputStream_readI_AB_I_I = 0; 1870 static base::subtle::AtomicWord g_InputStream_readI_AB_I_I = 0;
1858 static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray 1871 static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray
1859 p0, 1872 p0,
1860 jint p1, 1873 jint p1,
1861 jint p2) __attribute__ ((unused)); 1874 jint p2) __attribute__ ((unused));
1862 static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray 1875 static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray
1863 p0, 1876 p0,
1864 jint p1, 1877 jint p1,
1865 jint p2) { 1878 jint p2) {
1866 /* Must call RegisterNativesImpl() */ 1879 /* Must call RegisterNativesImpl() */
1867 DCHECK(g_InputStream_clazz); 1880 DCHECK(g_InputStream_clazz);
1868 jmethodID method_id = 1881 jmethodID method_id =
1869 base::android::MethodID::LazyGet< 1882 base::android::MethodID::LazyGet<
1870 base::android::MethodID::TYPE_INSTANCE>( 1883 base::android::MethodID::TYPE_INSTANCE>(
1871 env, g_InputStream_clazz, 1884 env, g_InputStream_clazz,
1872 "read", 1885 "read",
1873 1886 "([BII)I",
1874 "("
1875 "[B"
1876 "I"
1877 "I"
1878 ")"
1879 "I",
1880 &g_InputStream_readI_AB_I_I); 1887 &g_InputStream_readI_AB_I_I);
1881 1888
1882 jint ret = 1889 jint ret =
1883 env->CallIntMethod(obj, 1890 env->CallIntMethod(obj,
1884 method_id, p0, p1, p2); 1891 method_id, p0, p1, p2);
1885 base::android::CheckException(env); 1892 base::android::CheckException(env);
1886 return ret; 1893 return ret;
1887 } 1894 }
1888 1895
1889 static base::subtle::AtomicWord g_InputStream_reset = 0; 1896 static base::subtle::AtomicWord g_InputStream_reset = 0;
1890 static void Java_InputStream_reset(JNIEnv* env, jobject obj) __attribute__ 1897 static void Java_InputStream_reset(JNIEnv* env, jobject obj) __attribute__
1891 ((unused)); 1898 ((unused));
1892 static void Java_InputStream_reset(JNIEnv* env, jobject obj) { 1899 static void Java_InputStream_reset(JNIEnv* env, jobject obj) {
1893 /* Must call RegisterNativesImpl() */ 1900 /* Must call RegisterNativesImpl() */
1894 DCHECK(g_InputStream_clazz); 1901 DCHECK(g_InputStream_clazz);
1895 jmethodID method_id = 1902 jmethodID method_id =
1896 base::android::MethodID::LazyGet< 1903 base::android::MethodID::LazyGet<
1897 base::android::MethodID::TYPE_INSTANCE>( 1904 base::android::MethodID::TYPE_INSTANCE>(
1898 env, g_InputStream_clazz, 1905 env, g_InputStream_clazz,
1899 "reset", 1906 "reset",
1900 1907 "()V",
1901 "("
1902 ")"
1903 "V",
1904 &g_InputStream_reset); 1908 &g_InputStream_reset);
1905 1909
1906 env->CallVoidMethod(obj, 1910 env->CallVoidMethod(obj,
1907 method_id); 1911 method_id);
1908 base::android::CheckException(env); 1912 base::android::CheckException(env);
1909 1913
1910 } 1914 }
1911 1915
1912 static base::subtle::AtomicWord g_InputStream_skip = 0; 1916 static base::subtle::AtomicWord g_InputStream_skip = 0;
1913 static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) 1917 static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0)
1914 __attribute__ ((unused)); 1918 __attribute__ ((unused));
1915 static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) { 1919 static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) {
1916 /* Must call RegisterNativesImpl() */ 1920 /* Must call RegisterNativesImpl() */
1917 DCHECK(g_InputStream_clazz); 1921 DCHECK(g_InputStream_clazz);
1918 jmethodID method_id = 1922 jmethodID method_id =
1919 base::android::MethodID::LazyGet< 1923 base::android::MethodID::LazyGet<
1920 base::android::MethodID::TYPE_INSTANCE>( 1924 base::android::MethodID::TYPE_INSTANCE>(
1921 env, g_InputStream_clazz, 1925 env, g_InputStream_clazz,
1922 "skip", 1926 "skip",
1923 1927 "(J)J",
1924 "("
1925 "J"
1926 ")"
1927 "J",
1928 &g_InputStream_skip); 1928 &g_InputStream_skip);
1929 1929
1930 jlong ret = 1930 jlong ret =
1931 env->CallLongMethod(obj, 1931 env->CallLongMethod(obj,
1932 method_id, p0); 1932 method_id, p0);
1933 base::android::CheckException(env); 1933 base::android::CheckException(env);
1934 return ret; 1934 return ret;
1935 } 1935 }
1936 1936
1937 static base::subtle::AtomicWord g_InputStream_Constructor = 0; 1937 static base::subtle::AtomicWord g_InputStream_Constructor = 0;
1938 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) 1938 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env)
1939 __attribute__ ((unused)); 1939 __attribute__ ((unused));
1940 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) { 1940 static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) {
1941 /* Must call RegisterNativesImpl() */ 1941 /* Must call RegisterNativesImpl() */
1942 DCHECK(g_InputStream_clazz); 1942 DCHECK(g_InputStream_clazz);
1943 jmethodID method_id = 1943 jmethodID method_id =
1944 base::android::MethodID::LazyGet< 1944 base::android::MethodID::LazyGet<
1945 base::android::MethodID::TYPE_INSTANCE>( 1945 base::android::MethodID::TYPE_INSTANCE>(
1946 env, g_InputStream_clazz, 1946 env, g_InputStream_clazz,
1947 "<init>", 1947 "<init>",
1948 1948 "()V",
1949 "("
1950 ")"
1951 "V",
1952 &g_InputStream_Constructor); 1949 &g_InputStream_Constructor);
1953 1950
1954 jobject ret = 1951 jobject ret =
1955 env->NewObject(g_InputStream_clazz, 1952 env->NewObject(g_InputStream_clazz,
1956 method_id); 1953 method_id);
1957 base::android::CheckException(env); 1954 base::android::CheckException(env);
1958 return ScopedJavaLocalRef<jobject>(env, ret); 1955 return ScopedJavaLocalRef<jobject>(env, ret);
1959 } 1956 }
1960 1957
1961 // Step 3: RegisterNatives. 1958 // Step 3: RegisterNatives.
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2171 2168
2172 def testJniParamsJavaToJni(self): 2169 def testJniParamsJavaToJni(self):
2173 self.assertTextEquals('I', JniParams.JavaToJni('int')) 2170 self.assertTextEquals('I', JniParams.JavaToJni('int'))
2174 self.assertTextEquals('[B', JniParams.JavaToJni('byte[]')) 2171 self.assertTextEquals('[B', JniParams.JavaToJni('byte[]'))
2175 self.assertTextEquals( 2172 self.assertTextEquals(
2176 '[Ljava/nio/ByteBuffer;', JniParams.JavaToJni('java/nio/ByteBuffer[]')) 2173 '[Ljava/nio/ByteBuffer;', JniParams.JavaToJni('java/nio/ByteBuffer[]'))
2177 2174
2178 2175
2179 if __name__ == '__main__': 2176 if __name__ == '__main__':
2180 unittest.main() 2177 unittest.main()
OLDNEW
« no previous file with comments | « base/android/jni_generator/jni_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698