Skip to content

Commit d435a97

Browse files
authored
[One .NET] Don't preserve all of Android.Runtime.JNIEnv (#5362)
Context: #5167 Some members of `Android.Runtime.JNIEnv` are accessed via Reflection, and need to be preserved, but that doesn't mean the *entire type* needs to be preserved. Update the `<type/>` preservation XML so that only the required methods are always preserved, allowing the linker to remove other unused members.
1 parent f18b836 commit d435a97

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/Microsoft.Android.Sdk.ILLink/PreserveLists/Mono.Android.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
<type fullname="Android.Runtime.IJavaObject" />
88
<type fullname="Android.Runtime.InputStreamAdapter" />
99
<type fullname="Android.Runtime.InputStreamInvoker" />
10-
<type fullname="Android.Runtime.JNIEnv" />
10+
<type fullname="Android.Runtime.JNIEnv">
11+
<method name="Exit" />
12+
<method name="Initialize" />
13+
<method name="PropagateUncaughtException" />
14+
<method name="RegisterJniNatives" />
15+
</type>
1116
<type fullname="Android.Runtime.JniNativeInterfaceStruct" />
1217
<type fullname="Android.Runtime.JniNativeInterfaceInvoker" />
1318
<type fullname="Android.Runtime.JNINativeWrapper" />

0 commit comments

Comments
 (0)