Wiki Markup |
---|
Native methods are defined in Java and written in languages such as C and C++ \[[JNI 2006|AA. Bibliography#JNIReferences#JNI 06]\]. The added extensibility comes at the cost of flexibility and portability because the code no longer conforms to the policies enforced by Java. Native methods have been used for performing platform-specific operations, interfacing with legacy library code, and improving program performance \[[Bloch 2008|AA. Bibliography#BlochReferences#Bloch 08]\]. |
Defining a wrapper method facilitates installing appropriate security manager checks, validating arguments passed to native code, validating return values, defensively copying mutable inputs, and sanitizing untrusted data. Consequently, every native method must be private and must be invoked only by a wrapper method.
...
Wiki Markup |
---|
Automated detection is not feasible in the fully general case. However, an approach similar to Design Fragments \[[Fairbanks 07|AA. Bibliography#FairbanksReferences#Fairbanks 07]\] could assist both programmers and static analysis tools. |
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="867d723a30cabb77-258e1901-433040cd-a39a91fd-9866a869b5e2b64a4d1de7f1"><ac:plain-text-body><![CDATA[ | [[Fairbanks 2007 | AA. Bibliography#Fairbanks References#Fairbanks 07]] |
| ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="68555c3c1bdfc4d2-c91dd0bf-4d644838-8bc1970b-32ed7b57b5f1006e653d19c9"><ac:plain-text-body><![CDATA[ | [[JNI 2006 | AA. Bibliography#JNI References#JNI 06]] |
| ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0e7c326c6debe940-4299e5ac-4d984860-9b9e979e-31f8aa8a128ada289ae6e956"><ac:plain-text-body><![CDATA[ | [[Liang 1997 | AA. Bibliography#Liang References#Liang 97]] |
| ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="bf90c09626e748b6-a17c36d2-40d0405e-89298cd5-0940998cd3c7846d76ae9249"><ac:plain-text-body><![CDATA[ | [[Macgregor 1998 | AA. Bibliography#Macgregor References#Macgregor 98]] | Section 2.2.3, Interfaces and Architectures | ]]></ac:plain-text-body></ac:structured-macro> |
...