From 369ae73f4b43b18eda9a23ce6f2b96f241a8d943 Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Mon, 2 Dec 2024 10:31:34 -1000 Subject: [PATCH] Update tests. --- ...DisableUserUnhandledExceptionsAttribute.cs | 13 ++ .../WriteDuplicateInterfaceEventArgs.txt | 36 +++- .../WriteInterfaceRedeclaredDefaultMethod.txt | 17 +- .../XAJavaInterop1-NRT/WriteClass.txt | 164 +++++++++++----- .../XAJavaInterop1-NRT/WriteInterface.txt | 164 +++++++++++----- .../WriteMethodWithCharSequenceArrays.txt | 26 ++- .../XAJavaInterop1/WriteClass.txt | 164 +++++++++++----- .../WriteDefaultInterfaceMethodInvoker.txt | 34 +++- .../WriteDuplicateInterfaceEventArgs.txt | 36 +++- .../XAJavaInterop1/WriteInterface.txt | 164 +++++++++++----- .../WriteInterfaceDefaultMethod.txt | 17 +- .../WriteInterfaceDefaultProperty.txt | 35 +++- ...riteInterfaceDefaultPropertyGetterOnly.txt | 18 +- .../WriteInterfaceRedeclaredDefaultMethod.txt | 17 +- .../WriteMethodWithCharSequenceArrays.txt | 26 ++- .../WriteNestedInterfaceClass.txt | 18 +- .../WriteNestedInterfaceTypes.txt | 36 +++- .../WriteUnnestedInterfaceTypes.txt | 36 +++- .../Xamarin.Test.BasePublicClass.cs | 17 +- .../Xamarin.Test.ExtendPublicClass.cs | 17 +- .../Xamarin.Test.IExtendedInterface.cs | 34 +++- .../Xamarin.Test.PublicClass.cs | 34 +++- .../AccessModifiers/Xamarin.Test.TestClass.cs | 17 +- .../Adapters/Xamarin.Test.AbsSpinner.cs | 37 ++-- .../Adapters/Xamarin.Test.AdapterView.cs | 37 ++-- .../Xamarin.Test.GenericReturnObject.cs | 18 +- .../Xamarin.Test.SomeObject.cs | 37 ++-- .../CSharpKeywords/Java.Lang.Throwable.cs | 18 +- .../Xamarin.Test.CSharpKeywords.cs | 18 +- .../Core_Jar2Xml/Android.Text.ISpannable.cs | 22 ++- .../Core_Jar2Xml/Android.Text.ISpanned.cs | 22 ++- .../Android.Text.SpannableString.cs | 22 ++- .../Android.Text.SpannableStringInternal.cs | 22 ++- .../Core_Jar2Xml/Android.Views.View.cs | 76 +++++--- ...e.Android.Exoplayer.Drm.IExoMediaCrypto.cs | 22 ++- ...ogle.Android.Exoplayer.Drm.IExoMediaDrm.cs | 50 +++-- .../Xamarin.Test.II1.cs | 17 +- .../Xamarin.Test.II2.cs | 17 +- .../Xamarin.Test.SomeObject.cs | 17 +- .../Xamarin.Test.SomeObject2.cs | 34 +++- .../Xamarin.Test.NotificationCompatBase.cs | 18 +- .../NormalMethods/Xamarin.Test.A.cs | 36 +++- .../NormalMethods/Xamarin.Test.C.cs | 18 +- .../NormalMethods/Xamarin.Test.SomeObject.cs | 171 ++++++++++++----- .../Xamarin.Test.SomeObject.cs | 109 +++++++---- .../ParameterXPath/Xamarin.Test.A.cs | 38 ++-- .../Streams/Java.IO.FilterOutputStream.cs | 17 +- .../Streams/Java.IO.IOException.cs | 17 +- .../Streams/Java.IO.InputStream.cs | 175 ++++++++++++------ .../Streams/Java.IO.OutputStream.cs | 97 ++++++---- .../Streams/Java.Lang.Throwable.cs | 18 +- .../TestInterface/ClassWithoutNamespace.cs | 17 +- .../IInterfaceWithoutNamespace.cs | 17 +- .../TestInterface/Java.Util.ICollection.cs | 39 ++-- .../TestInterface/Java.Util.IDeque.cs | 39 ++-- .../TestInterface/Java.Util.IQueue.cs | 39 ++-- .../Test.ME.GenericImplementation.cs | 23 ++- ....ME.GenericObjectPropertyImplementation.cs | 37 ++-- .../Test.ME.GenericStringImplementation.cs | 23 ++- ....ME.GenericStringPropertyImplementation.cs | 37 ++-- .../Test.ME.IGenericInterface.cs | 19 +- .../Test.ME.IGenericPropertyInterface.cs | 37 ++-- .../TestInterface/Test.ME.ITestInterface.cs | 63 +++++-- .../Test.ME.TestInterfaceImplementation.cs | 63 +++++-- .../java.lang.Enum/Java.Lang.IComparable.cs | 22 ++- ...bleUserUnhandledExceptionsAttributeAttr.cs | 2 +- .../generator/SourceWriters/MethodCallback.cs | 2 +- 67 files changed, 1975 insertions(+), 844 deletions(-) create mode 100644 tests/generator-Tests/SupportFiles/DebuggerDisableUserUnhandledExceptionsAttribute.cs diff --git a/tests/generator-Tests/SupportFiles/DebuggerDisableUserUnhandledExceptionsAttribute.cs b/tests/generator-Tests/SupportFiles/DebuggerDisableUserUnhandledExceptionsAttribute.cs new file mode 100644 index 000000000..079616b91 --- /dev/null +++ b/tests/generator-Tests/SupportFiles/DebuggerDisableUserUnhandledExceptionsAttribute.cs @@ -0,0 +1,13 @@ +#if !NET9_0_OR_GREATER + +using System; + +namespace System.Diagnostics +{ + // This attribute was added in .NET 9, and we may not be targeting .NET 9 yet. + public class DebuggerDisableUserUnhandledExceptionsAttribute : Attribute + { + } +} + +#endif // !NET9_0_OR_GREATER diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteDuplicateInterfaceEventArgs.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteDuplicateInterfaceEventArgs.txt index ee71f4428..c8bfd30cf 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteDuplicateInterfaceEventArgs.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteDuplicateInterfaceEventArgs.txt @@ -70,15 +70,23 @@ internal partial class AnimatorListenerInvoker : global::Java.Lang.Object, Anima #pragma warning disable 0169 static Delegate GetOnAnimationEnd_IHandler () { - if (cb_OnAnimationEnd_OnAnimationEnd_I_Z == null) - cb_OnAnimationEnd_OnAnimationEnd_I_Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_Z (n_OnAnimationEnd_I)); - return cb_OnAnimationEnd_OnAnimationEnd_I_Z; + return cb_OnAnimationEnd_OnAnimationEnd_I_Z ??= new _JniMarshal_PPI_Z (n_OnAnimationEnd_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_OnAnimationEnd_I (IntPtr jnienv, IntPtr native__this, int param1) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.OnAnimationEnd (param1); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.OnAnimationEnd (param1); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -96,15 +104,23 @@ internal partial class AnimatorListenerInvoker : global::Java.Lang.Object, Anima #pragma warning disable 0169 static Delegate GetOnAnimationEnd_IIHandler () { - if (cb_OnAnimationEnd_OnAnimationEnd_II_Z == null) - cb_OnAnimationEnd_OnAnimationEnd_II_Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPII_Z (n_OnAnimationEnd_II)); - return cb_OnAnimationEnd_OnAnimationEnd_II_Z; + return cb_OnAnimationEnd_OnAnimationEnd_II_Z ??= new _JniMarshal_PPII_Z (n_OnAnimationEnd_II); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_OnAnimationEnd_II (IntPtr jnienv, IntPtr native__this, int param1, int param2) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.OnAnimationEnd (param1, param2); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.OnAnimationEnd (param1, param2); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceRedeclaredDefaultMethod.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceRedeclaredDefaultMethod.txt index 67d9e65a3..676aa7f47 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceRedeclaredDefaultMethod.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/Common/WriteInterfaceRedeclaredDefaultMethod.txt @@ -66,15 +66,22 @@ internal partial class IMyInterface2Invoker : global::Java.Lang.Object, IMyInter #pragma warning disable 0169 static Delegate GetDoSomethingHandler () { - if (cb_DoSomething_DoSomething_V == null) - cb_DoSomething_DoSomething_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_DoSomething)); - return cb_DoSomething_DoSomething_V; + return cb_DoSomething_DoSomething_V ??= new _JniMarshal_PP_V (n_DoSomething); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_DoSomething (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.DoSomething (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.DoSomething (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteClass.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteClass.txt index 26dba5fcd..d6acaa81a 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteClass.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteClass.txt @@ -53,15 +53,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_CountHandler () { - if (cb_get_Count_get_Count_I == null) - cb_get_Count_get_Count_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Count)); - return cb_get_Count_get_Count_I; + return cb_get_Count_get_Count_I ??= new _JniMarshal_PP_I (n_get_Count); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_Count (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return __this.Count; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return __this.Count; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -69,15 +77,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_Count_IHandler () { - if (cb_set_Count_set_Count_I_V == null) - cb_set_Count_set_Count_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_Count_I)); - return cb_set_Count_set_Count_I_V; + return cb_set_Count_set_Count_I_V ??= new _JniMarshal_PPI_V (n_set_Count_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Count_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.Count = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.Count = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -109,15 +124,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_KeyHandler () { - if (cb_get_Key_get_Key_Ljava_lang_String_ == null) - cb_get_Key_get_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_get_Key)); - return cb_get_Key_get_Key_Ljava_lang_String_; + return cb_get_Key_get_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_get_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_get_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.NewString (__this.Key); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.NewString (__this.Key); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -125,16 +148,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_Key_Ljava_lang_String_Handler () { - if (cb_set_Key_set_Key_Ljava_lang_String__V == null) - cb_set_Key_set_Key_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_)); - return cb_set_Key_set_Key_Ljava_lang_String__V; + return cb_set_Key_set_Key_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Key_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); - __this.Key = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); + __this.Key = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -192,15 +222,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_AbstractCountHandler () { - if (cb_get_AbstractCount_get_AbstractCount_I == null) - cb_get_AbstractCount_get_AbstractCount_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_AbstractCount)); - return cb_get_AbstractCount_get_AbstractCount_I; + return cb_get_AbstractCount_get_AbstractCount_I ??= new _JniMarshal_PP_I (n_get_AbstractCount); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_AbstractCount (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return __this.AbstractCount; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return __this.AbstractCount; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -208,15 +246,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_AbstractCount_IHandler () { - if (cb_set_AbstractCount_set_AbstractCount_I_V == null) - cb_set_AbstractCount_set_AbstractCount_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_AbstractCount_I)); - return cb_set_AbstractCount_set_AbstractCount_I_V; + return cb_set_AbstractCount_set_AbstractCount_I_V ??= new _JniMarshal_PPI_V (n_set_AbstractCount_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_AbstractCount_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.AbstractCount = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.AbstractCount = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -234,17 +279,25 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetGetCountForKey_Ljava_lang_String_Handler () { - if (cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I == null) - cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_)); - return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I; + return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I ??= new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetCountForKey_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_key) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetCountForKey (key); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetCountForKey (key); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -268,15 +321,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetKeyHandler () { - if (cb_Key_Key_Ljava_lang_String_ == null) - cb_Key_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Key)); - return cb_Key_Key_Ljava_lang_String_; + return cb_Key_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.NewString (__this.Key ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.NewString (__this.Key ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -307,15 +368,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetAbstractMethodHandler () { - if (cb_AbstractMethod_AbstractMethod_V == null) - cb_AbstractMethod_AbstractMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_AbstractMethod)); - return cb_AbstractMethod_AbstractMethod_V; + return cb_AbstractMethod_AbstractMethod_V ??= new _JniMarshal_PP_V (n_AbstractMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_AbstractMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.AbstractMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.AbstractMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteInterface.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteInterface.txt index b5db9ed4f..c632a1d20 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteInterface.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteInterface.txt @@ -134,15 +134,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_CountHandler () { - if (cb_get_Count_get_Count_I == null) - cb_get_Count_get_Count_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Count)); - return cb_get_Count_get_Count_I; + return cb_get_Count_get_Count_I ??= new _JniMarshal_PP_I (n_get_Count); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_Count (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return __this.Count; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return __this.Count; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -150,15 +158,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_Count_IHandler () { - if (cb_set_Count_set_Count_I_V == null) - cb_set_Count_set_Count_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_Count_I)); - return cb_set_Count_set_Count_I_V; + return cb_set_Count_set_Count_I_V ??= new _JniMarshal_PPI_V (n_set_Count_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Count_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.Count = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.Count = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -183,15 +198,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_KeyHandler () { - if (cb_get_Key_get_Key_Ljava_lang_String_ == null) - cb_get_Key_get_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_get_Key)); - return cb_get_Key_get_Key_Ljava_lang_String_; + return cb_get_Key_get_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_get_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_get_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.NewString (__this.Key); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.NewString (__this.Key); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -199,16 +222,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_Key_Ljava_lang_String_Handler () { - if (cb_set_Key_set_Key_Ljava_lang_String__V == null) - cb_set_Key_set_Key_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_)); - return cb_set_Key_set_Key_Ljava_lang_String__V; + return cb_set_Key_set_Key_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Key_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); - __this.Key = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); + __this.Key = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -235,15 +265,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_AbstractCountHandler () { - if (cb_get_AbstractCount_get_AbstractCount_I == null) - cb_get_AbstractCount_get_AbstractCount_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_AbstractCount)); - return cb_get_AbstractCount_get_AbstractCount_I; + return cb_get_AbstractCount_get_AbstractCount_I ??= new _JniMarshal_PP_I (n_get_AbstractCount); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_AbstractCount (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return __this.AbstractCount; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return __this.AbstractCount; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -251,15 +289,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_AbstractCount_IHandler () { - if (cb_set_AbstractCount_set_AbstractCount_I_V == null) - cb_set_AbstractCount_set_AbstractCount_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_AbstractCount_I)); - return cb_set_AbstractCount_set_AbstractCount_I_V; + return cb_set_AbstractCount_set_AbstractCount_I_V ??= new _JniMarshal_PPI_V (n_set_AbstractCount_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_AbstractCount_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.AbstractCount = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.AbstractCount = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -284,17 +329,25 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetGetCountForKey_Ljava_lang_String_Handler () { - if (cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I == null) - cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_)); - return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I; + return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I ??= new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetCountForKey_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_key) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetCountForKey (key); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetCountForKey (key); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -315,15 +368,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetKeyHandler () { - if (cb_Key_Key_Ljava_lang_String_ == null) - cb_Key_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Key)); - return cb_Key_Key_Ljava_lang_String_; + return cb_Key_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.NewString (__this.Key ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.NewString (__this.Key ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -339,15 +400,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetAbstractMethodHandler () { - if (cb_AbstractMethod_AbstractMethod_V == null) - cb_AbstractMethod_AbstractMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_AbstractMethod)); - return cb_AbstractMethod_AbstractMethod_V; + return cb_AbstractMethod_AbstractMethod_V ??= new _JniMarshal_PP_V (n_AbstractMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_AbstractMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.AbstractMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.AbstractMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteMethodWithCharSequenceArrays.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteMethodWithCharSequenceArrays.txt index 37650f15b..ea8eae013 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteMethodWithCharSequenceArrays.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteMethodWithCharSequenceArrays.txt @@ -33,19 +33,27 @@ public partial class MyClass : Java.Lang.Object { #pragma warning disable 0169 static Delegate GetEcho_arrayLjava_lang_CharSequence_Handler () { - if (cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ == null) - cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_L (n_Echo_arrayLjava_lang_CharSequence_)); - return cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_; + return cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ ??= new _JniMarshal_PPL_L (n_Echo_arrayLjava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Echo_arrayLjava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_messages) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - var messages = (Java.Lang.ICharSequence[]?) JNIEnv.GetArray (native_messages, JniHandleOwnership.DoNotTransfer, typeof (Java.Lang.ICharSequence)); - IntPtr __ret = JNIEnv.NewArray (__this.EchoFormatted (messages)); - if (messages != null) - JNIEnv.CopyArray (messages, native_messages); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + var messages = (Java.Lang.ICharSequence[]?) JNIEnv.GetArray (native_messages, JniHandleOwnership.DoNotTransfer, typeof (Java.Lang.ICharSequence)); + IntPtr __ret = JNIEnv.NewArray (__this.EchoFormatted (messages)); + if (messages != null) + JNIEnv.CopyArray (messages, native_messages); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteClass.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteClass.txt index faccd1ed9..7eb343765 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteClass.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteClass.txt @@ -53,15 +53,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_CountHandler () { - if (cb_get_Count_get_Count_I == null) - cb_get_Count_get_Count_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Count)); - return cb_get_Count_get_Count_I; + return cb_get_Count_get_Count_I ??= new _JniMarshal_PP_I (n_get_Count); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_Count (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Count; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Count; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -69,15 +77,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_Count_IHandler () { - if (cb_set_Count_set_Count_I_V == null) - cb_set_Count_set_Count_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_Count_I)); - return cb_set_Count_set_Count_I_V; + return cb_set_Count_set_Count_I_V ??= new _JniMarshal_PPI_V (n_set_Count_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Count_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Count = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Count = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -109,15 +124,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_KeyHandler () { - if (cb_get_Key_get_Key_Ljava_lang_String_ == null) - cb_get_Key_get_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_get_Key)); - return cb_get_Key_get_Key_Ljava_lang_String_; + return cb_get_Key_get_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_get_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_get_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Key); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Key); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -125,16 +148,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_Key_Ljava_lang_String_Handler () { - if (cb_set_Key_set_Key_Ljava_lang_String__V == null) - cb_set_Key_set_Key_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_)); - return cb_set_Key_set_Key_Ljava_lang_String__V; + return cb_set_Key_set_Key_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Key_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); - __this.Key = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); + __this.Key = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -192,15 +222,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getget_AbstractCountHandler () { - if (cb_get_AbstractCount_get_AbstractCount_I == null) - cb_get_AbstractCount_get_AbstractCount_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_AbstractCount)); - return cb_get_AbstractCount_get_AbstractCount_I; + return cb_get_AbstractCount_get_AbstractCount_I ??= new _JniMarshal_PP_I (n_get_AbstractCount); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_AbstractCount (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.AbstractCount; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.AbstractCount; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -208,15 +246,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate Getset_AbstractCount_IHandler () { - if (cb_set_AbstractCount_set_AbstractCount_I_V == null) - cb_set_AbstractCount_set_AbstractCount_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_AbstractCount_I)); - return cb_set_AbstractCount_set_AbstractCount_I_V; + return cb_set_AbstractCount_set_AbstractCount_I_V ??= new _JniMarshal_PPI_V (n_set_AbstractCount_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_AbstractCount_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.AbstractCount = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.AbstractCount = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -234,17 +279,25 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetGetCountForKey_Ljava_lang_String_Handler () { - if (cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I == null) - cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_)); - return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I; + return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I ??= new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetCountForKey_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_key) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetCountForKey (key); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetCountForKey (key); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -268,15 +321,23 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetKeyHandler () { - if (cb_Key_Key_Ljava_lang_String_ == null) - cb_Key_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Key)); - return cb_Key_Key_Ljava_lang_String_; + return cb_Key_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Key ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Key ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -307,15 +368,22 @@ public partial class MyClass { #pragma warning disable 0169 static Delegate GetAbstractMethodHandler () { - if (cb_AbstractMethod_AbstractMethod_V == null) - cb_AbstractMethod_AbstractMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_AbstractMethod)); - return cb_AbstractMethod_AbstractMethod_V; + return cb_AbstractMethod_AbstractMethod_V ??= new _JniMarshal_PP_V (n_AbstractMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_AbstractMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.AbstractMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.AbstractMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDefaultInterfaceMethodInvoker.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDefaultInterfaceMethodInvoker.txt index 5a80ed03b..cdd650a1e 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDefaultInterfaceMethodInvoker.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDefaultInterfaceMethodInvoker.txt @@ -11,15 +11,22 @@ public partial interface IMyInterface : IJavaObject, IJavaPeerable { #pragma warning disable 0169 private static Delegate GetDoDefaultHandler () { - if (cb_DoDefault_DoDefault_V == null) - cb_DoDefault_DoDefault_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_DoDefault)); - return cb_DoDefault_DoDefault_V; + return cb_DoDefault_DoDefault_V ??= new _JniMarshal_PP_V (n_DoDefault); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] private static void n_DoDefault (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.DoDefault (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.DoDefault (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -95,15 +102,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetDoDeclarationHandler () { - if (cb_DoDeclaration_DoDeclaration_V == null) - cb_DoDeclaration_DoDeclaration_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_DoDeclaration)); - return cb_DoDeclaration_DoDeclaration_V; + return cb_DoDeclaration_DoDeclaration_V ??= new _JniMarshal_PP_V (n_DoDeclaration); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_DoDeclaration (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.DoDeclaration (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.DoDeclaration (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDuplicateInterfaceEventArgs.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDuplicateInterfaceEventArgs.txt index ee71f4428..c8bfd30cf 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDuplicateInterfaceEventArgs.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDuplicateInterfaceEventArgs.txt @@ -70,15 +70,23 @@ internal partial class AnimatorListenerInvoker : global::Java.Lang.Object, Anima #pragma warning disable 0169 static Delegate GetOnAnimationEnd_IHandler () { - if (cb_OnAnimationEnd_OnAnimationEnd_I_Z == null) - cb_OnAnimationEnd_OnAnimationEnd_I_Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_Z (n_OnAnimationEnd_I)); - return cb_OnAnimationEnd_OnAnimationEnd_I_Z; + return cb_OnAnimationEnd_OnAnimationEnd_I_Z ??= new _JniMarshal_PPI_Z (n_OnAnimationEnd_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_OnAnimationEnd_I (IntPtr jnienv, IntPtr native__this, int param1) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.OnAnimationEnd (param1); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.OnAnimationEnd (param1); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -96,15 +104,23 @@ internal partial class AnimatorListenerInvoker : global::Java.Lang.Object, Anima #pragma warning disable 0169 static Delegate GetOnAnimationEnd_IIHandler () { - if (cb_OnAnimationEnd_OnAnimationEnd_II_Z == null) - cb_OnAnimationEnd_OnAnimationEnd_II_Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPII_Z (n_OnAnimationEnd_II)); - return cb_OnAnimationEnd_OnAnimationEnd_II_Z; + return cb_OnAnimationEnd_OnAnimationEnd_II_Z ??= new _JniMarshal_PPII_Z (n_OnAnimationEnd_II); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_OnAnimationEnd_II (IntPtr jnienv, IntPtr native__this, int param1, int param2) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.OnAnimationEnd (param1, param2); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.OnAnimationEnd (param1, param2); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterface.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterface.txt index 9a0540855..3f281d9d0 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterface.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterface.txt @@ -134,15 +134,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_CountHandler () { - if (cb_get_Count_get_Count_I == null) - cb_get_Count_get_Count_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Count)); - return cb_get_Count_get_Count_I; + return cb_get_Count_get_Count_I ??= new _JniMarshal_PP_I (n_get_Count); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_Count (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Count; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Count; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -150,15 +158,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_Count_IHandler () { - if (cb_set_Count_set_Count_I_V == null) - cb_set_Count_set_Count_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_Count_I)); - return cb_set_Count_set_Count_I_V; + return cb_set_Count_set_Count_I_V ??= new _JniMarshal_PPI_V (n_set_Count_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Count_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Count = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Count = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -183,15 +198,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_KeyHandler () { - if (cb_get_Key_get_Key_Ljava_lang_String_ == null) - cb_get_Key_get_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_get_Key)); - return cb_get_Key_get_Key_Ljava_lang_String_; + return cb_get_Key_get_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_get_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_get_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Key); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Key); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -199,16 +222,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_Key_Ljava_lang_String_Handler () { - if (cb_set_Key_set_Key_Ljava_lang_String__V == null) - cb_set_Key_set_Key_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_)); - return cb_set_Key_set_Key_Ljava_lang_String__V; + return cb_set_Key_set_Key_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_set_Key_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_Key_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); - __this.Key = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = JNIEnv.GetString (native_value, JniHandleOwnership.DoNotTransfer); + __this.Key = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -235,15 +265,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getget_AbstractCountHandler () { - if (cb_get_AbstractCount_get_AbstractCount_I == null) - cb_get_AbstractCount_get_AbstractCount_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_AbstractCount)); - return cb_get_AbstractCount_get_AbstractCount_I; + return cb_get_AbstractCount_get_AbstractCount_I ??= new _JniMarshal_PP_I (n_get_AbstractCount); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_get_AbstractCount (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.AbstractCount; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.AbstractCount; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -251,15 +289,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate Getset_AbstractCount_IHandler () { - if (cb_set_AbstractCount_set_AbstractCount_I_V == null) - cb_set_AbstractCount_set_AbstractCount_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_AbstractCount_I)); - return cb_set_AbstractCount_set_AbstractCount_I_V; + return cb_set_AbstractCount_set_AbstractCount_I_V ??= new _JniMarshal_PPI_V (n_set_AbstractCount_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_set_AbstractCount_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.AbstractCount = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.AbstractCount = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -284,17 +329,25 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetGetCountForKey_Ljava_lang_String_Handler () { - if (cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I == null) - cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_)); - return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I; + return cb_GetCountForKey_GetCountForKey_Ljava_lang_String__I ??= new _JniMarshal_PPL_I (n_GetCountForKey_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetCountForKey_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_key) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetCountForKey (key); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetCountForKey (key); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -315,15 +368,23 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetKeyHandler () { - if (cb_Key_Key_Ljava_lang_String_ == null) - cb_Key_Key_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Key)); - return cb_Key_Key_Ljava_lang_String_; + return cb_Key_Key_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_Key); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Key (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Key ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Key ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -339,15 +400,22 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf #pragma warning disable 0169 static Delegate GetAbstractMethodHandler () { - if (cb_AbstractMethod_AbstractMethod_V == null) - cb_AbstractMethod_AbstractMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_AbstractMethod)); - return cb_AbstractMethod_AbstractMethod_V; + return cb_AbstractMethod_AbstractMethod_V ??= new _JniMarshal_PP_V (n_AbstractMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_AbstractMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.AbstractMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.AbstractMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultMethod.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultMethod.txt index fd2e7bd28..2f54adb6a 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultMethod.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultMethod.txt @@ -7,15 +7,22 @@ public partial interface IMyInterface : IJavaObject, IJavaPeerable { #pragma warning disable 0169 private static Delegate GetDoSomethingHandler () { - if (cb_DoSomething_DoSomething_V == null) - cb_DoSomething_DoSomething_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_DoSomething)); - return cb_DoSomething_DoSomething_V; + return cb_DoSomething_DoSomething_V ??= new _JniMarshal_PP_V (n_DoSomething); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] private static void n_DoSomething (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.DoSomething (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.DoSomething (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultProperty.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultProperty.txt index ad2258f03..b34d24130 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultProperty.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultProperty.txt @@ -7,15 +7,23 @@ public partial interface IMyInterface : IJavaObject, IJavaPeerable { #pragma warning disable 0169 private static Delegate Getget_ValueHandler () { - if (cb_get_Value_get_Value_I == null) - cb_get_Value_get_Value_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Value)); - return cb_get_Value_get_Value_I; + return cb_get_Value_get_Value_I ??= new _JniMarshal_PP_I (n_get_Value); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] private static int n_get_Value (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -23,15 +31,22 @@ public partial interface IMyInterface : IJavaObject, IJavaPeerable { #pragma warning disable 0169 private static Delegate Getset_Value_IHandler () { - if (cb_set_Value_set_Value_I_V == null) - cb_set_Value_set_Value_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_set_Value_I)); - return cb_set_Value_set_Value_I_V; + return cb_set_Value_set_Value_I_V ??= new _JniMarshal_PPI_V (n_set_Value_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] private static void n_set_Value_I (IntPtr jnienv, IntPtr native__this, int value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Value = value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Value = value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt index 321c3ffec..06f96f7b2 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt @@ -7,15 +7,23 @@ public partial interface IMyInterface : IJavaObject, IJavaPeerable { #pragma warning disable 0169 private static Delegate Getget_ValueHandler () { - if (cb_get_Value_get_Value_I == null) - cb_get_Value_get_Value_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_get_Value)); - return cb_get_Value_get_Value_I; + return cb_get_Value_get_Value_I ??= new _JniMarshal_PP_I (n_get_Value); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] private static int n_get_Value (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Value; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Value; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt index 67d9e65a3..676aa7f47 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt @@ -66,15 +66,22 @@ internal partial class IMyInterface2Invoker : global::Java.Lang.Object, IMyInter #pragma warning disable 0169 static Delegate GetDoSomethingHandler () { - if (cb_DoSomething_DoSomething_V == null) - cb_DoSomething_DoSomething_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_DoSomething)); - return cb_DoSomething_DoSomething_V; + return cb_DoSomething_DoSomething_V ??= new _JniMarshal_PP_V (n_DoSomething); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_DoSomething (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.DoSomething (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.DoSomething (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteMethodWithCharSequenceArrays.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteMethodWithCharSequenceArrays.txt index 5ae296955..aca0e7990 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteMethodWithCharSequenceArrays.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteMethodWithCharSequenceArrays.txt @@ -33,19 +33,27 @@ public partial class MyClass : Java.Lang.Object { #pragma warning disable 0169 static Delegate GetEcho_arrayLjava_lang_CharSequence_Handler () { - if (cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ == null) - cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_L (n_Echo_arrayLjava_lang_CharSequence_)); - return cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_; + return cb_echo_Echo_arrayLjava_lang_CharSequence__arrayLjava_lang_CharSequence_ ??= new _JniMarshal_PPL_L (n_Echo_arrayLjava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Echo_arrayLjava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_messages) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var messages = (Java.Lang.ICharSequence[]) JNIEnv.GetArray (native_messages, JniHandleOwnership.DoNotTransfer, typeof (Java.Lang.ICharSequence)); - IntPtr __ret = JNIEnv.NewArray (__this.EchoFormatted (messages)); - if (messages != null) - JNIEnv.CopyArray (messages, native_messages); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var messages = (Java.Lang.ICharSequence[]) JNIEnv.GetArray (native_messages, JniHandleOwnership.DoNotTransfer, typeof (Java.Lang.ICharSequence)); + IntPtr __ret = JNIEnv.NewArray (__this.EchoFormatted (messages)); + if (messages != null) + JNIEnv.CopyArray (messages, native_messages); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceClass.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceClass.txt index 9b6e1b388..8e1d52f4a 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceClass.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceClass.txt @@ -101,15 +101,23 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent { #pragma warning disable 0169 static Delegate GetGetBarHandler () { - if (cb_getBar_GetBar_I == null) - cb_getBar_GetBar_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetBar)); - return cb_getBar_GetBar_I; + return cb_getBar_GetBar_I ??= new _JniMarshal_PP_I (n_GetBar); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetBar (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Bar; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Bar; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceTypes.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceTypes.txt index 7cbb6e8ab..4b3d7798e 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceTypes.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceTypes.txt @@ -77,15 +77,23 @@ public partial interface IParent : IJavaObject, IJavaPeerable { #pragma warning disable 0169 static Delegate GetGetBarHandler () { - if (cb_getBar_GetBar_I == null) - cb_getBar_GetBar_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetBar)); - return cb_getBar_GetBar_I; + return cb_getBar_GetBar_I ??= new _JniMarshal_PP_I (n_GetBar); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetBar (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Bar; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Bar; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -161,15 +169,23 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent { #pragma warning disable 0169 static Delegate GetGetBarHandler () { - if (cb_getBar_GetBar_I == null) - cb_getBar_GetBar_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetBar)); - return cb_getBar_GetBar_I; + return cb_getBar_GetBar_I ??= new _JniMarshal_PP_I (n_GetBar); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetBar (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Bar; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Bar; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteUnnestedInterfaceTypes.txt b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteUnnestedInterfaceTypes.txt index 9cf82ca41..dbd628c52 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteUnnestedInterfaceTypes.txt +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteUnnestedInterfaceTypes.txt @@ -68,15 +68,23 @@ internal partial class IParentChildInvoker : global::Java.Lang.Object, IParentCh #pragma warning disable 0169 static Delegate GetGetBarHandler () { - if (cb_getBar_GetBar_I == null) - cb_getBar_GetBar_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetBar)); - return cb_getBar_GetBar_I; + return cb_getBar_GetBar_I ??= new _JniMarshal_PP_I (n_GetBar); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetBar (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Bar; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Bar; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -161,15 +169,23 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent { #pragma warning disable 0169 static Delegate GetGetBarHandler () { - if (cb_getBar_GetBar_I == null) - cb_getBar_GetBar_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetBar)); - return cb_getBar_GetBar_I; + return cb_getBar_GetBar_I ??= new _JniMarshal_PP_I (n_GetBar); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetBar (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Bar; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Bar; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.BasePublicClass.cs b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.BasePublicClass.cs index d5a5f220a..98de6550c 100644 --- a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.BasePublicClass.cs +++ b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.BasePublicClass.cs @@ -50,15 +50,22 @@ protected BasePublicClass (IntPtr javaReference, JniHandleOwnership transfer) : #pragma warning disable 0169 static Delegate GetBaseMethodHandler () { - if (cb_baseMethod_BaseMethod_V == null) - cb_baseMethod_BaseMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_BaseMethod)); - return cb_baseMethod_BaseMethod_V; + return cb_baseMethod_BaseMethod_V ??= new _JniMarshal_PP_V (n_BaseMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_BaseMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.BaseMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.BaseMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.ExtendPublicClass.cs b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.ExtendPublicClass.cs index 6220f72d3..33c434de2 100644 --- a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.ExtendPublicClass.cs +++ b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.ExtendPublicClass.cs @@ -67,15 +67,22 @@ public unsafe ExtendPublicClass () : base (IntPtr.Zero, JniHandleOwnership.DoNot #pragma warning disable 0169 static Delegate GetFooHandler () { - if (cb_foo_Foo_V == null) - cb_foo_Foo_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Foo)); - return cb_foo_Foo_V; + return cb_foo_Foo_V ??= new _JniMarshal_PP_V (n_Foo); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Foo (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Foo (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Foo (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.IExtendedInterface.cs b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.IExtendedInterface.cs index b569b5075..ca2ae0cb7 100644 --- a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.IExtendedInterface.cs +++ b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.IExtendedInterface.cs @@ -54,15 +54,22 @@ public IExtendedInterfaceInvoker (IntPtr handle, JniHandleOwnership transfer) : #pragma warning disable 0169 static Delegate GetExtendedMethodHandler () { - if (cb_extendedMethod_ExtendedMethod_V == null) - cb_extendedMethod_ExtendedMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_ExtendedMethod)); - return cb_extendedMethod_ExtendedMethod_V; + return cb_extendedMethod_ExtendedMethod_V ??= new _JniMarshal_PP_V (n_ExtendedMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_ExtendedMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.ExtendedMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.ExtendedMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -79,15 +86,22 @@ public unsafe void ExtendedMethod () #pragma warning disable 0169 static Delegate GetBaseMethodHandler () { - if (cb_baseMethod_BaseMethod_V == null) - cb_baseMethod_BaseMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_BaseMethod)); - return cb_baseMethod_BaseMethod_V; + return cb_baseMethod_BaseMethod_V ??= new _JniMarshal_PP_V (n_BaseMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_BaseMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.BaseMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.BaseMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicClass.cs b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicClass.cs index 4ae661d76..60ee7f5e4 100644 --- a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicClass.cs +++ b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicClass.cs @@ -61,15 +61,22 @@ public IProtectedInterfaceInvoker (IntPtr handle, JniHandleOwnership transfer) : #pragma warning disable 0169 static Delegate GetFooHandler () { - if (cb_foo_Foo_V == null) - cb_foo_Foo_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Foo)); - return cb_foo_Foo_V; + return cb_foo_Foo_V ??= new _JniMarshal_PP_V (n_Foo); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Foo (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Foo (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Foo (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -133,15 +140,22 @@ public unsafe PublicClass () : base (IntPtr.Zero, JniHandleOwnership.DoNotTransf #pragma warning disable 0169 static Delegate GetFooHandler () { - if (cb_foo_Foo_V == null) - cb_foo_Foo_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Foo)); - return cb_foo_Foo_V; + return cb_foo_Foo_V ??= new _JniMarshal_PP_V (n_Foo); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Foo (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Foo (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Foo (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.TestClass.cs b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.TestClass.cs index 921dab094..41ce1d78f 100644 --- a/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.TestClass.cs +++ b/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.TestClass.cs @@ -67,15 +67,22 @@ public unsafe TestClass () : base (IntPtr.Zero, JniHandleOwnership.DoNotTransfer #pragma warning disable 0169 static Delegate GetBaseMethodHandler () { - if (cb_baseMethod_BaseMethod_V == null) - cb_baseMethod_BaseMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_BaseMethod)); - return cb_baseMethod_BaseMethod_V; + return cb_baseMethod_BaseMethod_V ??= new _JniMarshal_PP_V (n_BaseMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_BaseMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.BaseMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.BaseMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AbsSpinner.cs b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AbsSpinner.cs index 9d42336df..aec5dcde6 100644 --- a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AbsSpinner.cs +++ b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AbsSpinner.cs @@ -50,15 +50,23 @@ protected AbsSpinner (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetGetAdapterHandler () { - if (cb_getAdapter_GetAdapter_Lxamarin_test_SpinnerAdapter_ == null) - cb_getAdapter_GetAdapter_Lxamarin_test_SpinnerAdapter_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetAdapter)); - return cb_getAdapter_GetAdapter_Lxamarin_test_SpinnerAdapter_; + return cb_getAdapter_GetAdapter_Lxamarin_test_SpinnerAdapter_ ??= new _JniMarshal_PP_L (n_GetAdapter); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetAdapter (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.Adapter); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.Adapter); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -66,16 +74,23 @@ static IntPtr n_GetAdapter (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetAdapter_Lxamarin_test_SpinnerAdapter_Handler () { - if (cb_setAdapter_SetAdapter_Lxamarin_test_SpinnerAdapter__V == null) - cb_setAdapter_SetAdapter_Lxamarin_test_SpinnerAdapter__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetAdapter_Lxamarin_test_SpinnerAdapter_)); - return cb_setAdapter_SetAdapter_Lxamarin_test_SpinnerAdapter__V; + return cb_setAdapter_SetAdapter_Lxamarin_test_SpinnerAdapter__V ??= new _JniMarshal_PPL_V (n_SetAdapter_Lxamarin_test_SpinnerAdapter_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetAdapter_Lxamarin_test_SpinnerAdapter_ (IntPtr jnienv, IntPtr native__this, IntPtr native_adapter) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var adapter = (global::Xamarin.Test.ISpinnerAdapter)global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); - __this.Adapter = adapter; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var adapter = (global::Xamarin.Test.ISpinnerAdapter)global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); + __this.Adapter = adapter; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AdapterView.cs b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AdapterView.cs index a0603b282..a5ac9ca1b 100644 --- a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AdapterView.cs +++ b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AdapterView.cs @@ -51,15 +51,23 @@ protected AdapterView (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetGetAdapterHandler () { - if (cb_getAdapter_GetAdapter_Lxamarin_test_Adapter_ == null) - cb_getAdapter_GetAdapter_Lxamarin_test_Adapter_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetAdapter)); - return cb_getAdapter_GetAdapter_Lxamarin_test_Adapter_; + return cb_getAdapter_GetAdapter_Lxamarin_test_Adapter_ ??= new _JniMarshal_PP_L (n_GetAdapter); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetAdapter (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.RawAdapter); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.RawAdapter); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -67,16 +75,23 @@ static IntPtr n_GetAdapter (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetAdapter_Lxamarin_test_Adapter_Handler () { - if (cb_setAdapter_SetAdapter_Lxamarin_test_Adapter__V == null) - cb_setAdapter_SetAdapter_Lxamarin_test_Adapter__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetAdapter_Lxamarin_test_Adapter_)); - return cb_setAdapter_SetAdapter_Lxamarin_test_Adapter__V; + return cb_setAdapter_SetAdapter_Lxamarin_test_Adapter__V ??= new _JniMarshal_PPL_V (n_SetAdapter_Lxamarin_test_Adapter_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetAdapter_Lxamarin_test_Adapter_ (IntPtr jnienv, IntPtr native__this, IntPtr native_adapter) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var adapter = global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); - __this.RawAdapter = adapter; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var adapter = global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); + __this.RawAdapter = adapter; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.GenericReturnObject.cs b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.GenericReturnObject.cs index a15152c8a..732be7fb9 100644 --- a/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.GenericReturnObject.cs +++ b/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.GenericReturnObject.cs @@ -50,15 +50,23 @@ protected GenericReturnObject (IntPtr javaReference, JniHandleOwnership transfer #pragma warning disable 0169 static Delegate GetGenericReturnHandler () { - if (cb_GenericReturn_GenericReturn_Lxamarin_test_AdapterView_ == null) - cb_GenericReturn_GenericReturn_Lxamarin_test_AdapterView_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GenericReturn)); - return cb_GenericReturn_GenericReturn_Lxamarin_test_AdapterView_; + return cb_GenericReturn_GenericReturn_Lxamarin_test_AdapterView_ ??= new _JniMarshal_PP_L (n_GenericReturn); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GenericReturn (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.GenericReturn ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.GenericReturn ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Xamarin.Test.SomeObject.cs index 18df6af7a..4d4f4de5f 100644 --- a/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Xamarin.Test.SomeObject.cs @@ -70,15 +70,23 @@ protected SomeObject (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetGetSomeColorHandler () { - if (cb_getSomeColor_GetSomeColor_I == null) - cb_getSomeColor_GetSomeColor_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetSomeColor)); - return cb_getSomeColor_GetSomeColor_I; + return cb_getSomeColor_GetSomeColor_I ??= new _JniMarshal_PP_I (n_GetSomeColor); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSomeColor (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.SomeColor.ToArgb (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.SomeColor.ToArgb (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -86,16 +94,23 @@ static int n_GetSomeColor (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetSomeColor_IHandler () { - if (cb_setSomeColor_SetSomeColor_I_V == null) - cb_setSomeColor_SetSomeColor_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_SetSomeColor_I)); - return cb_setSomeColor_SetSomeColor_I_V; + return cb_setSomeColor_SetSomeColor_I_V ??= new _JniMarshal_PPI_V (n_SetSomeColor_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetSomeColor_I (IntPtr jnienv, IntPtr native__this, int native_newvalue) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var newvalue = new global::Android.Graphics.Color (native_newvalue); - __this.SomeColor = newvalue; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var newvalue = new global::Android.Graphics.Color (native_newvalue); + __this.SomeColor = newvalue; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Throwable.cs b/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Throwable.cs index 3485bf63c..f11671c10 100644 --- a/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Throwable.cs +++ b/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Throwable.cs @@ -28,15 +28,23 @@ internal static IntPtr class_ref { #pragma warning disable 0169 static Delegate GetGetMessageHandler () { - if (cb_getMessage_GetMessage_Ljava_lang_String_ == null) - cb_getMessage_GetMessage_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetMessage)); - return cb_getMessage_GetMessage_Ljava_lang_String_; + return cb_getMessage_GetMessage_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_GetMessage); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetMessage (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Message); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Message); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/CSharpKeywords/Xamarin.Test.CSharpKeywords.cs b/tests/generator-Tests/expected.xaji/CSharpKeywords/Xamarin.Test.CSharpKeywords.cs index 0b7497e00..9af7048f0 100644 --- a/tests/generator-Tests/expected.xaji/CSharpKeywords/Xamarin.Test.CSharpKeywords.cs +++ b/tests/generator-Tests/expected.xaji/CSharpKeywords/Xamarin.Test.CSharpKeywords.cs @@ -50,15 +50,23 @@ protected CSharpKeywords (IntPtr javaReference, JniHandleOwnership transfer) : b #pragma warning disable 0169 static Delegate GetUsePartial_IHandler () { - if (cb_usePartial_UsePartial_I_Ljava_lang_String_ == null) - cb_usePartial_UsePartial_I_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_L (n_UsePartial_I)); - return cb_usePartial_UsePartial_I_Ljava_lang_String_; + return cb_usePartial_UsePartial_I_Ljava_lang_String_ ??= new _JniMarshal_PPI_L (n_UsePartial_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_UsePartial_I (IntPtr jnienv, IntPtr native__this, int partial) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.UsePartial (partial)); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.UsePartial (partial)); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpannable.cs b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpannable.cs index fe7575e43..7dd3961c6 100644 --- a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpannable.cs +++ b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpannable.cs @@ -46,17 +46,25 @@ public ISpannableInvoker (IntPtr handle, JniHandleOwnership transfer) : base (ha #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_tag) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); - int __ret = (int) __this.GetSpanFlags (tag); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); + int __ret = (int) __this.GetSpanFlags (tag); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpanned.cs b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpanned.cs index 9e29c945d..3d7948143 100644 --- a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpanned.cs +++ b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpanned.cs @@ -49,17 +49,25 @@ public ISpannedInvoker (IntPtr handle, JniHandleOwnership transfer) : base (hand #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_tag) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); - int __ret = (int) __this.GetSpanFlags (tag); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); + int __ret = (int) __this.GetSpanFlags (tag); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableString.cs b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableString.cs index 355cc043d..4dce835c0 100644 --- a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableString.cs +++ b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableString.cs @@ -93,17 +93,25 @@ public unsafe SpannableString (string source) : base (IntPtr.Zero, JniHandleOwne #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_what) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var what = global::Java.Lang.Object.GetObject (native_what, JniHandleOwnership.DoNotTransfer); - int __ret = (int) __this.GetSpanFlags (what); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var what = global::Java.Lang.Object.GetObject (native_what, JniHandleOwnership.DoNotTransfer); + int __ret = (int) __this.GetSpanFlags (what); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableStringInternal.cs b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableStringInternal.cs index 177673a96..8f202629f 100644 --- a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableStringInternal.cs +++ b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableStringInternal.cs @@ -50,17 +50,25 @@ protected SpannableStringInternal (IntPtr javaReference, JniHandleOwnership tran #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); - int __ret = (int) __this.GetSpanFlags (p0); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); + int __ret = (int) __this.GetSpanFlags (p0); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Views.View.cs b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Views.View.cs index 5f63c2559..afb812197 100644 --- a/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Views.View.cs +++ b/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Views.View.cs @@ -61,16 +61,23 @@ public IOnClickListenerInvoker (IntPtr handle, JniHandleOwnership transfer) : ba #pragma warning disable 0169 static Delegate GetOnClick_Landroid_view_View_Handler () { - if (cb_onClick_OnClick_Landroid_view_View__V == null) - cb_onClick_OnClick_Landroid_view_View__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_OnClick_Landroid_view_View_)); - return cb_onClick_OnClick_Landroid_view_View__V; + return cb_onClick_OnClick_Landroid_view_View__V ??= new _JniMarshal_PPL_V (n_OnClick_Landroid_view_View_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_OnClick_Landroid_view_View_ (IntPtr jnienv, IntPtr native__this, IntPtr native_v) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var v = global::Java.Lang.Object.GetObject (native_v, JniHandleOwnership.DoNotTransfer); - __this.OnClick (v); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var v = global::Java.Lang.Object.GetObject (native_v, JniHandleOwnership.DoNotTransfer); + __this.OnClick (v); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -150,16 +157,23 @@ protected View (IntPtr javaReference, JniHandleOwnership transfer) : base (javaR #pragma warning disable 0169 static Delegate GetSetOnClickListener_Landroid_view_View_OnClickListener_Handler () { - if (cb_setOnClickListener_SetOnClickListener_Landroid_view_View_OnClickListener__V == null) - cb_setOnClickListener_SetOnClickListener_Landroid_view_View_OnClickListener__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetOnClickListener_Landroid_view_View_OnClickListener_)); - return cb_setOnClickListener_SetOnClickListener_Landroid_view_View_OnClickListener__V; + return cb_setOnClickListener_SetOnClickListener_Landroid_view_View_OnClickListener__V ??= new _JniMarshal_PPL_V (n_SetOnClickListener_Landroid_view_View_OnClickListener_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetOnClickListener_Landroid_view_View_OnClickListener_ (IntPtr jnienv, IntPtr native__this, IntPtr native_l) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var l = (global::Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject (native_l, JniHandleOwnership.DoNotTransfer); - __this.SetOnClickListener (l); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var l = (global::Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject (native_l, JniHandleOwnership.DoNotTransfer); + __this.SetOnClickListener (l); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -181,16 +195,23 @@ public virtual unsafe void SetOnClickListener (global::Android.Views.View.IOnCli #pragma warning disable 0169 static Delegate GetSetOn123Listener_Landroid_view_View_OnClickListener_Handler () { - if (cb_setOn123Listener_SetOn123Listener_Landroid_view_View_OnClickListener__V == null) - cb_setOn123Listener_SetOn123Listener_Landroid_view_View_OnClickListener__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetOn123Listener_Landroid_view_View_OnClickListener_)); - return cb_setOn123Listener_SetOn123Listener_Landroid_view_View_OnClickListener__V; + return cb_setOn123Listener_SetOn123Listener_Landroid_view_View_OnClickListener__V ??= new _JniMarshal_PPL_V (n_SetOn123Listener_Landroid_view_View_OnClickListener_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetOn123Listener_Landroid_view_View_OnClickListener_ (IntPtr jnienv, IntPtr native__this, IntPtr native_l) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var l = (global::Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject (native_l, JniHandleOwnership.DoNotTransfer); - __this.SetOn123Listener (l); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var l = (global::Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject (native_l, JniHandleOwnership.DoNotTransfer); + __this.SetOn123Listener (l); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -212,16 +233,23 @@ public virtual unsafe void SetOn123Listener (global::Android.Views.View.IOnClick #pragma warning disable 0169 static Delegate GetAddTouchables_Ljava_util_ArrayList_Handler () { - if (cb_addTouchables_AddTouchables_Ljava_util_ArrayList__V == null) - cb_addTouchables_AddTouchables_Ljava_util_ArrayList__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_AddTouchables_Ljava_util_ArrayList_)); - return cb_addTouchables_AddTouchables_Ljava_util_ArrayList__V; + return cb_addTouchables_AddTouchables_Ljava_util_ArrayList__V ??= new _JniMarshal_PPL_V (n_AddTouchables_Ljava_util_ArrayList_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_AddTouchables_Ljava_util_ArrayList_ (IntPtr jnienv, IntPtr native__this, IntPtr native_views) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var views = global::Android.Runtime.JavaList.FromJniHandle (native_views, JniHandleOwnership.DoNotTransfer); - __this.AddTouchables (views); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var views = global::Android.Runtime.JavaList.FromJniHandle (native_views, JniHandleOwnership.DoNotTransfer); + __this.AddTouchables (views); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaCrypto.cs b/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaCrypto.cs index 4108d414d..295437d48 100644 --- a/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaCrypto.cs +++ b/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaCrypto.cs @@ -48,17 +48,25 @@ public IExoMediaCryptoInvoker (IntPtr handle, JniHandleOwnership transfer) : bas #pragma warning disable 0169 static Delegate GetRequiresSecureDecoderComponent_Ljava_lang_String_Handler () { - if (cb_requiresSecureDecoderComponent_RequiresSecureDecoderComponent_Ljava_lang_String__Z == null) - cb_requiresSecureDecoderComponent_RequiresSecureDecoderComponent_Ljava_lang_String__Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_Z (n_RequiresSecureDecoderComponent_Ljava_lang_String_)); - return cb_requiresSecureDecoderComponent_RequiresSecureDecoderComponent_Ljava_lang_String__Z; + return cb_requiresSecureDecoderComponent_RequiresSecureDecoderComponent_Ljava_lang_String__Z ??= new _JniMarshal_PPL_Z (n_RequiresSecureDecoderComponent_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_RequiresSecureDecoderComponent_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer); - bool __ret = __this.RequiresSecureDecoderComponent (p0); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = JNIEnv.GetString (native_p0, JniHandleOwnership.DoNotTransfer); + bool __ret = __this.RequiresSecureDecoderComponent (p0); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs b/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs index cfef94267..e00e490f3 100644 --- a/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs +++ b/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs @@ -49,22 +49,29 @@ public IExoMediaDrmOnEventListenerInvoker (IntPtr handle, JniHandleOwnership tra #pragma warning disable 0169 static Delegate GetOnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayBHandler () { - if (cb_onEvent_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB_V == null) - cb_onEvent_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPLLIIL_V (n_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB)); - return cb_onEvent_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB_V; + return cb_onEvent_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB_V ??= new _JniMarshal_PPLLIIL_V (n_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_OnEvent_Lcom_google_android_exoplayer_drm_ExoMediaDrm_arrayBIIarrayB (IntPtr jnienv, IntPtr native__this, IntPtr native_p0, IntPtr native_p1, int p2, int p3, IntPtr native_p4) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = (global::Com.Google.Android.Exoplayer.Drm.IExoMediaDrm)global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); - var p1 = (byte[]) JNIEnv.GetArray (native_p1, JniHandleOwnership.DoNotTransfer, typeof (byte)); - var p4 = (byte[]) JNIEnv.GetArray (native_p4, JniHandleOwnership.DoNotTransfer, typeof (byte)); - __this.OnEvent (p0, p1, p2, p3, p4); - if (p1 != null) - JNIEnv.CopyArray (p1, native_p1); - if (p4 != null) - JNIEnv.CopyArray (p4, native_p4); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = (global::Com.Google.Android.Exoplayer.Drm.IExoMediaDrm)global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); + var p1 = (byte[]) JNIEnv.GetArray (native_p1, JniHandleOwnership.DoNotTransfer, typeof (byte)); + var p4 = (byte[]) JNIEnv.GetArray (native_p4, JniHandleOwnership.DoNotTransfer, typeof (byte)); + __this.OnEvent (p0, p1, p2, p3, p4); + if (p1 != null) + JNIEnv.CopyArray (p1, native_p1); + if (p4 != null) + JNIEnv.CopyArray (p4, native_p4); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -219,16 +226,23 @@ public IExoMediaDrmInvoker (IntPtr handle, JniHandleOwnership transfer) : base ( #pragma warning disable 0169 static Delegate GetSetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener_Handler () { - if (cb_setOnEventListener_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener__V == null) - cb_setOnEventListener_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener_)); - return cb_setOnEventListener_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener__V; + return cb_setOnEventListener_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener__V ??= new _JniMarshal_PPL_V (n_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetOnEventListener_Lcom_google_android_exoplayer_drm_ExoMediaDrm_OnEventListener_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = (global::Com.Google.Android.Exoplayer.Drm.IExoMediaDrmOnEventListener)global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); - __this.SetOnEventListener (p0); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = (global::Com.Google.Android.Exoplayer.Drm.IExoMediaDrmOnEventListener)global::Java.Lang.Object.GetObject (native_p0, JniHandleOwnership.DoNotTransfer); + __this.SetOnEventListener (p0); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II1.cs b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II1.cs index 3d923cf68..e4db17d43 100644 --- a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II1.cs +++ b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II1.cs @@ -48,15 +48,22 @@ public II1Invoker (IntPtr handle, JniHandleOwnership transfer) : base (handle, t #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II2.cs b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II2.cs index 6926b1bc3..fdebfbcc0 100644 --- a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II2.cs +++ b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II2.cs @@ -48,15 +48,22 @@ public II2Invoker (IntPtr handle, JniHandleOwnership transfer) : base (handle, t #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject.cs index 0a7fcc09e..1619c924c 100644 --- a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject.cs @@ -50,15 +50,22 @@ protected SomeObject (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject2.cs b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject2.cs index ea751b19e..adf053e83 100644 --- a/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject2.cs +++ b/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject2.cs @@ -50,15 +50,22 @@ protected SomeObject2 (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetIrrelevantHandler () { - if (cb_irrelevant_Irrelevant_V == null) - cb_irrelevant_Irrelevant_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Irrelevant)); - return cb_irrelevant_Irrelevant_V; + return cb_irrelevant_Irrelevant_V ??= new _JniMarshal_PP_V (n_Irrelevant); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Irrelevant (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Irrelevant (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Irrelevant (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -77,15 +84,22 @@ public virtual unsafe void Irrelevant () #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs b/tests/generator-Tests/expected.xaji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs index 0b72d3b9c..21ca6ae3c 100644 --- a/tests/generator-Tests/expected.xaji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs +++ b/tests/generator-Tests/expected.xaji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs @@ -64,15 +64,23 @@ public IFactoryInvoker (IntPtr handle, JniHandleOwnership transfer) : base (hand #pragma warning disable 0169 static Delegate GetBuild_IHandler () { - if (cb_build_Build_I_Lxamarin_test_NotificationCompatBase_Action_ == null) - cb_build_Build_I_Lxamarin_test_NotificationCompatBase_Action_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_L (n_Build_I)); - return cb_build_Build_I_Lxamarin_test_NotificationCompatBase_Action_; + return cb_build_Build_I_Lxamarin_test_NotificationCompatBase_Action_ ??= new _JniMarshal_PPI_L (n_Build_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Build_I (IntPtr jnienv, IntPtr native__this, int p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.Build (p0)); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.Build (p0)); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.A.cs b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.A.cs index a7b3cf65b..43636756e 100644 --- a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.A.cs +++ b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.A.cs @@ -54,15 +54,23 @@ protected B (IntPtr javaReference, JniHandleOwnership transfer) : base (javaRefe #pragma warning disable 0169 static Delegate GetSetCustomDimension_IHandler () { - if (cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_A_B_ == null) - cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_A_B_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_L (n_SetCustomDimension_I)); - return cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_A_B_; + return cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_A_B_ ??= new _JniMarshal_PPI_L (n_SetCustomDimension_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_SetCustomDimension_I (IntPtr jnienv, IntPtr native__this, int index) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.SetCustomDimension (index)); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.SetCustomDimension (index)); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -114,15 +122,23 @@ protected A (IntPtr javaReference, JniHandleOwnership transfer) : base (javaRefe #pragma warning disable 0169 static Delegate GetGetHandleHandler () { - if (cb_getHandle_GetHandle_I == null) - cb_getHandle_GetHandle_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetHandle)); - return cb_getHandle_GetHandle_I; + return cb_getHandle_GetHandle_I ??= new _JniMarshal_PP_I (n_GetHandle); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetHandle (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.GetHandle (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.GetHandle (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.C.cs b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.C.cs index 3a26d8276..0a7fc54d6 100644 --- a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.C.cs +++ b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.C.cs @@ -51,15 +51,23 @@ protected C (IntPtr javaReference, JniHandleOwnership transfer) : base (javaRefe #pragma warning disable 0169 static Delegate GetSetCustomDimension_IHandler () { - if (cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_C_ == null) - cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_C_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_L (n_SetCustomDimension_I)); - return cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_C_; + return cb_setCustomDimension_SetCustomDimension_I_Lxamarin_test_C_ ??= new _JniMarshal_PPI_L (n_SetCustomDimension_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_SetCustomDimension_I (IntPtr jnienv, IntPtr native__this, int index) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.SetCustomDimension (index)); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.SetCustomDimension (index)); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.SomeObject.cs index 4a0ffc6f5..b732e2a67 100644 --- a/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.SomeObject.cs @@ -70,15 +70,23 @@ public unsafe SomeObject (global::Java.Lang.Class c) : base (IntPtr.Zero, JniHan #pragma warning disable 0169 static Delegate GetGetTypeHandler () { - if (cb_getType_GetType_arrayI == null) - cb_getType_GetType_arrayI = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetType)); - return cb_getType_GetType_arrayI; + return cb_getType_GetType_arrayI ??= new _JniMarshal_PP_L (n_GetType); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetType (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewArray (__this.GetType ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewArray (__this.GetType ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -98,18 +106,26 @@ static IntPtr n_GetType (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetHandle_Ljava_lang_Object_Ljava_lang_Throwable_Handler () { - if (cb_handle_Handle_Ljava_lang_Object_Ljava_lang_Throwable__I == null) - cb_handle_Handle_Ljava_lang_Object_Ljava_lang_Throwable__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPLL_I (n_Handle_Ljava_lang_Object_Ljava_lang_Throwable_)); - return cb_handle_Handle_Ljava_lang_Object_Ljava_lang_Throwable__I; + return cb_handle_Handle_Ljava_lang_Object_Ljava_lang_Throwable__I ??= new _JniMarshal_PPLL_I (n_Handle_Ljava_lang_Object_Ljava_lang_Throwable_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_Handle_Ljava_lang_Object_Ljava_lang_Throwable_ (IntPtr jnienv, IntPtr native__this, IntPtr native_o, IntPtr native_t) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var o = global::Java.Lang.Object.GetObject (native_o, JniHandleOwnership.DoNotTransfer); - var t = global::Java.Lang.Object.GetObject (native_t, JniHandleOwnership.DoNotTransfer); - int __ret = __this.Handle (o, t); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var o = global::Java.Lang.Object.GetObject (native_o, JniHandleOwnership.DoNotTransfer); + var t = global::Java.Lang.Object.GetObject (native_t, JniHandleOwnership.DoNotTransfer); + int __ret = __this.Handle (o, t); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -134,15 +150,23 @@ static int n_Handle_Ljava_lang_Object_Ljava_lang_Throwable_ (IntPtr jnienv, IntP #pragma warning disable 0169 static Delegate GetIntegerMethodHandler () { - if (cb_IntegerMethod_IntegerMethod_I == null) - cb_IntegerMethod_IntegerMethod_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_IntegerMethod)); - return cb_IntegerMethod_IntegerMethod_I; + return cb_IntegerMethod_IntegerMethod_I ??= new _JniMarshal_PP_I (n_IntegerMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_IntegerMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.IntegerMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.IntegerMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -162,15 +186,22 @@ public virtual unsafe int IntegerMethod () #pragma warning disable 0169 static Delegate GetVoidMethodHandler () { - if (cb_VoidMethod_VoidMethod_V == null) - cb_VoidMethod_VoidMethod_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_VoidMethod)); - return cb_VoidMethod_VoidMethod_V; + return cb_VoidMethod_VoidMethod_V ??= new _JniMarshal_PP_V (n_VoidMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_VoidMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.VoidMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.VoidMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -189,15 +220,23 @@ public virtual unsafe void VoidMethod () #pragma warning disable 0169 static Delegate GetStringMethodHandler () { - if (cb_StringMethod_StringMethod_Ljava_lang_String_ == null) - cb_StringMethod_StringMethod_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_StringMethod)); - return cb_StringMethod_StringMethod_Ljava_lang_String_; + return cb_StringMethod_StringMethod_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_StringMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_StringMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.StringMethod ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.StringMethod ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -217,15 +256,23 @@ public virtual unsafe string StringMethod () #pragma warning disable 0169 static Delegate GetObjectMethodHandler () { - if (cb_ObjectMethod_ObjectMethod_Ljava_lang_Object_ == null) - cb_ObjectMethod_ObjectMethod_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_ObjectMethod)); - return cb_ObjectMethod_ObjectMethod_Ljava_lang_Object_; + return cb_ObjectMethod_ObjectMethod_Ljava_lang_Object_ ??= new _JniMarshal_PP_L (n_ObjectMethod); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_ObjectMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.ObjectMethod ()); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.ObjectMethod ()); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -245,17 +292,24 @@ static IntPtr n_ObjectMethod (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetVoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object_Handler () { - if (cb_VoidMethodWithParams_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object__V == null) - cb_VoidMethodWithParams_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPLIL_V (n_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object_)); - return cb_VoidMethodWithParams_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object__V; + return cb_VoidMethodWithParams_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object__V ??= new _JniMarshal_PPLIL_V (n_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_VoidMethodWithParams_Ljava_lang_String_ILjava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_astring, int anint, IntPtr native_anObject) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var astring = JNIEnv.GetString (native_astring, JniHandleOwnership.DoNotTransfer); - var anObject = global::Java.Lang.Object.GetObject (native_anObject, JniHandleOwnership.DoNotTransfer); - __this.VoidMethodWithParams (astring, anint, anObject); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var astring = JNIEnv.GetString (native_astring, JniHandleOwnership.DoNotTransfer); + var anObject = global::Java.Lang.Object.GetObject (native_anObject, JniHandleOwnership.DoNotTransfer); + __this.VoidMethodWithParams (astring, anint, anObject); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -282,16 +336,24 @@ public virtual unsafe void VoidMethodWithParams (string astring, int anint, glob [global::System.Obsolete] static Delegate GetObsoleteMethodHandler () { - if (cb_ObsoleteMethod_ObsoleteMethod_I == null) - cb_ObsoleteMethod_ObsoleteMethod_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_ObsoleteMethod)); - return cb_ObsoleteMethod_ObsoleteMethod_I; + return cb_ObsoleteMethod_ObsoleteMethod_I ??= new _JniMarshal_PP_I (n_ObsoleteMethod); } [global::System.Obsolete] + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_ObsoleteMethod (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.ObsoleteMethod (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.ObsoleteMethod (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -312,16 +374,23 @@ public virtual unsafe int ObsoleteMethod () #pragma warning disable 0169 static Delegate GetArrayListTest_Ljava_util_ArrayList_Handler () { - if (cb_ArrayListTest_ArrayListTest_Ljava_util_ArrayList__V == null) - cb_ArrayListTest_ArrayListTest_Ljava_util_ArrayList__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_ArrayListTest_Ljava_util_ArrayList_)); - return cb_ArrayListTest_ArrayListTest_Ljava_util_ArrayList__V; + return cb_ArrayListTest_ArrayListTest_Ljava_util_ArrayList__V ??= new _JniMarshal_PPL_V (n_ArrayListTest_Ljava_util_ArrayList_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_ArrayListTest_Ljava_util_ArrayList_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = global::Android.Runtime.JavaList.FromJniHandle (native_p0, JniHandleOwnership.DoNotTransfer); - __this.ArrayListTest (p0); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = global::Android.Runtime.JavaList.FromJniHandle (native_p0, JniHandleOwnership.DoNotTransfer); + __this.ArrayListTest (p0); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/NormalProperties/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/NormalProperties/Xamarin.Test.SomeObject.cs index 4b2071473..c0a6ae00d 100644 --- a/tests/generator-Tests/expected.xaji/NormalProperties/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/NormalProperties/Xamarin.Test.SomeObject.cs @@ -50,15 +50,23 @@ protected SomeObject (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetGetSomeIntegerHandler () { - if (cb_getSomeInteger_GetSomeInteger_I == null) - cb_getSomeInteger_GetSomeInteger_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_GetSomeInteger)); - return cb_getSomeInteger_GetSomeInteger_I; + return cb_getSomeInteger_GetSomeInteger_I ??= new _JniMarshal_PP_I (n_GetSomeInteger); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSomeInteger (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.SomeInteger; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.SomeInteger; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -66,15 +74,22 @@ static int n_GetSomeInteger (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetSomeInteger_IHandler () { - if (cb_setSomeInteger_SetSomeInteger_I_V == null) - cb_setSomeInteger_SetSomeInteger_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_SetSomeInteger_I)); - return cb_setSomeInteger_SetSomeInteger_I_V; + return cb_setSomeInteger_SetSomeInteger_I_V ??= new _JniMarshal_PPI_V (n_SetSomeInteger_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetSomeInteger_I (IntPtr jnienv, IntPtr native__this, int newvalue) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.SomeInteger = newvalue; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.SomeInteger = newvalue; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -92,15 +107,23 @@ public abstract int SomeInteger { #pragma warning disable 0169 static Delegate GetGetSomeObjectPropertyHandler () { - if (cb_getSomeObjectProperty_GetSomeObjectProperty_Ljava_lang_Object_ == null) - cb_getSomeObjectProperty_GetSomeObjectProperty_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetSomeObjectProperty)); - return cb_getSomeObjectProperty_GetSomeObjectProperty_Ljava_lang_Object_; + return cb_getSomeObjectProperty_GetSomeObjectProperty_Ljava_lang_Object_ ??= new _JniMarshal_PP_L (n_GetSomeObjectProperty); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetSomeObjectProperty (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.SomeObjectProperty); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.SomeObjectProperty); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -108,16 +131,23 @@ static IntPtr n_GetSomeObjectProperty (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetSomeObjectProperty_Ljava_lang_Object_Handler () { - if (cb_setSomeObjectProperty_SetSomeObjectProperty_Ljava_lang_Object__V == null) - cb_setSomeObjectProperty_SetSomeObjectProperty_Ljava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetSomeObjectProperty_Ljava_lang_Object_)); - return cb_setSomeObjectProperty_SetSomeObjectProperty_Ljava_lang_Object__V; + return cb_setSomeObjectProperty_SetSomeObjectProperty_Ljava_lang_Object__V ??= new _JniMarshal_PPL_V (n_SetSomeObjectProperty_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetSomeObjectProperty_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_newvalue) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var newvalue = global::Java.Lang.Object.GetObject (native_newvalue, JniHandleOwnership.DoNotTransfer); - __this.SomeObjectProperty = newvalue; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var newvalue = global::Java.Lang.Object.GetObject (native_newvalue, JniHandleOwnership.DoNotTransfer); + __this.SomeObjectProperty = newvalue; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -135,15 +165,23 @@ static void n_SetSomeObjectProperty_Ljava_lang_Object_ (IntPtr jnienv, IntPtr na #pragma warning disable 0169 static Delegate GetGetSomeStringHandler () { - if (cb_getSomeString_GetSomeString_Ljava_lang_String_ == null) - cb_getSomeString_GetSomeString_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetSomeString)); - return cb_getSomeString_GetSomeString_Ljava_lang_String_; + return cb_getSomeString_GetSomeString_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_GetSomeString); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetSomeString (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.SomeString); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.SomeString); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -151,16 +189,23 @@ static IntPtr n_GetSomeString (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetSomeString_Ljava_lang_String_Handler () { - if (cb_setSomeString_SetSomeString_Ljava_lang_String__V == null) - cb_setSomeString_SetSomeString_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetSomeString_Ljava_lang_String_)); - return cb_setSomeString_SetSomeString_Ljava_lang_String__V; + return cb_setSomeString_SetSomeString_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_SetSomeString_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetSomeString_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_newvalue) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var newvalue = JNIEnv.GetString (native_newvalue, JniHandleOwnership.DoNotTransfer); - __this.SomeString = newvalue; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var newvalue = JNIEnv.GetString (native_newvalue, JniHandleOwnership.DoNotTransfer); + __this.SomeString = newvalue; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/ParameterXPath/Xamarin.Test.A.cs b/tests/generator-Tests/expected.xaji/ParameterXPath/Xamarin.Test.A.cs index f0f2dfd85..8f54dcff1 100644 --- a/tests/generator-Tests/expected.xaji/ParameterXPath/Xamarin.Test.A.cs +++ b/tests/generator-Tests/expected.xaji/ParameterXPath/Xamarin.Test.A.cs @@ -51,16 +51,23 @@ protected A (IntPtr javaReference, JniHandleOwnership transfer) : base (javaRefe #pragma warning disable 0169 static Delegate GetSetA_Ljava_lang_Object_Handler () { - if (cb_setA_SetA_Ljava_lang_Object__V == null) - cb_setA_SetA_Ljava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetA_Ljava_lang_Object_)); - return cb_setA_SetA_Ljava_lang_Object__V; + return cb_setA_SetA_Ljava_lang_Object__V ??= new _JniMarshal_PPL_V (n_SetA_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetA_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_adapter) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var adapter = global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); - __this.SetA (adapter); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var adapter = global::Java.Lang.Object.GetObject (native_adapter, JniHandleOwnership.DoNotTransfer); + __this.SetA (adapter); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -84,16 +91,23 @@ public virtual unsafe void SetA (global::Java.Lang.Object adapter) #pragma warning disable 0169 static Delegate GetListTest_Ljava_util_List_Handler () { - if (cb_listTest_ListTest_Ljava_util_List__V == null) - cb_listTest_ListTest_Ljava_util_List__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_ListTest_Ljava_util_List_)); - return cb_listTest_ListTest_Ljava_util_List__V; + return cb_listTest_ListTest_Ljava_util_List__V ??= new _JniMarshal_PPL_V (n_ListTest_Ljava_util_List_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_ListTest_Ljava_util_List_ (IntPtr jnienv, IntPtr native__this, IntPtr native_p0) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var p0 = global::Android.Runtime.JavaList.FromJniHandle (native_p0, JniHandleOwnership.DoNotTransfer); - __this.ListTest (p0); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var p0 = global::Android.Runtime.JavaList.FromJniHandle (native_p0, JniHandleOwnership.DoNotTransfer); + __this.ListTest (p0); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Streams/Java.IO.FilterOutputStream.cs b/tests/generator-Tests/expected.xaji/Streams/Java.IO.FilterOutputStream.cs index f2ff5e0e8..527725414 100644 --- a/tests/generator-Tests/expected.xaji/Streams/Java.IO.FilterOutputStream.cs +++ b/tests/generator-Tests/expected.xaji/Streams/Java.IO.FilterOutputStream.cs @@ -72,15 +72,22 @@ public unsafe FilterOutputStream (global::System.IO.Stream @out) : base (IntPtr. #pragma warning disable 0169 static Delegate GetWrite_IHandler () { - if (cb_write_Write_I_V == null) - cb_write_Write_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_Write_I)); - return cb_write_Write_I_V; + return cb_write_Write_I_V ??= new _JniMarshal_PPI_V (n_Write_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Write_I (IntPtr jnienv, IntPtr native__this, int oneByte) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Write (oneByte); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Write (oneByte); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Streams/Java.IO.IOException.cs b/tests/generator-Tests/expected.xaji/Streams/Java.IO.IOException.cs index b9777d674..e47f75b06 100644 --- a/tests/generator-Tests/expected.xaji/Streams/Java.IO.IOException.cs +++ b/tests/generator-Tests/expected.xaji/Streams/Java.IO.IOException.cs @@ -50,15 +50,22 @@ protected IOException (IntPtr javaReference, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetPrintStackTraceHandler () { - if (cb_printStackTrace_PrintStackTrace_V == null) - cb_printStackTrace_PrintStackTrace_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_PrintStackTrace)); - return cb_printStackTrace_PrintStackTrace_V; + return cb_printStackTrace_PrintStackTrace_V ??= new _JniMarshal_PP_V (n_PrintStackTrace); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_PrintStackTrace (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.PrintStackTrace (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.PrintStackTrace (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Streams/Java.IO.InputStream.cs b/tests/generator-Tests/expected.xaji/Streams/Java.IO.InputStream.cs index c33b5fe16..e39cb8168 100644 --- a/tests/generator-Tests/expected.xaji/Streams/Java.IO.InputStream.cs +++ b/tests/generator-Tests/expected.xaji/Streams/Java.IO.InputStream.cs @@ -67,15 +67,23 @@ public unsafe InputStream () : base (IntPtr.Zero, JniHandleOwnership.DoNotTransf #pragma warning disable 0169 static Delegate GetAvailableHandler () { - if (cb_available_Available_I == null) - cb_available_Available_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_Available)); - return cb_available_Available_I; + return cb_available_Available_I ??= new _JniMarshal_PP_I (n_Available); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_Available (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Available (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Available (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -95,15 +103,22 @@ public virtual unsafe int Available () #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -122,15 +137,22 @@ public virtual unsafe void Close () #pragma warning disable 0169 static Delegate GetMark_IHandler () { - if (cb_mark_Mark_I_V == null) - cb_mark_Mark_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_Mark_I)); - return cb_mark_Mark_I_V; + return cb_mark_Mark_I_V ??= new _JniMarshal_PPI_V (n_Mark_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Mark_I (IntPtr jnienv, IntPtr native__this, int readlimit) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Mark (readlimit); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Mark (readlimit); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -151,15 +173,23 @@ public virtual unsafe void Mark (int readlimit) #pragma warning disable 0169 static Delegate GetMarkSupportedHandler () { - if (cb_markSupported_MarkSupported_Z == null) - cb_markSupported_MarkSupported_Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_Z (n_MarkSupported)); - return cb_markSupported_MarkSupported_Z; + return cb_markSupported_MarkSupported_Z ??= new _JniMarshal_PP_Z (n_MarkSupported); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_MarkSupported (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.MarkSupported (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.MarkSupported (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -179,15 +209,23 @@ public virtual unsafe bool MarkSupported () #pragma warning disable 0169 static Delegate GetReadHandler () { - if (cb_read_Read_I == null) - cb_read_Read_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_I (n_Read)); - return cb_read_Read_I; + return cb_read_Read_I ??= new _JniMarshal_PP_I (n_Read); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_Read (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Read (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Read (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -199,19 +237,27 @@ static int n_Read (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetRead_arrayBHandler () { - if (cb_read_Read_arrayB_I == null) - cb_read_Read_arrayB_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_Read_arrayB)); - return cb_read_Read_arrayB_I; + return cb_read_Read_arrayB_I ??= new _JniMarshal_PPL_I (n_Read_arrayB); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_Read_arrayB (IntPtr jnienv, IntPtr native__this, IntPtr native_buffer) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); - int __ret = __this.Read (buffer); - if (buffer != null) - JNIEnv.CopyArray (buffer, native_buffer); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); + int __ret = __this.Read (buffer); + if (buffer != null) + JNIEnv.CopyArray (buffer, native_buffer); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -239,19 +285,27 @@ public virtual unsafe int Read (byte[] buffer) #pragma warning disable 0169 static Delegate GetRead_arrayBIIHandler () { - if (cb_read_Read_arrayBII_I == null) - cb_read_Read_arrayBII_I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPLII_I (n_Read_arrayBII)); - return cb_read_Read_arrayBII_I; + return cb_read_Read_arrayBII_I ??= new _JniMarshal_PPLII_I (n_Read_arrayBII); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_Read_arrayBII (IntPtr jnienv, IntPtr native__this, IntPtr native_buffer, int byteOffset, int byteCount) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); - int __ret = __this.Read (buffer, byteOffset, byteCount); - if (buffer != null) - JNIEnv.CopyArray (buffer, native_buffer); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); + int __ret = __this.Read (buffer, byteOffset, byteCount); + if (buffer != null) + JNIEnv.CopyArray (buffer, native_buffer); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -281,15 +335,22 @@ public virtual unsafe int Read (byte[] buffer, int byteOffset, int byteCount) #pragma warning disable 0169 static Delegate GetResetHandler () { - if (cb_reset_Reset_V == null) - cb_reset_Reset_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Reset)); - return cb_reset_Reset_V; + return cb_reset_Reset_V ??= new _JniMarshal_PP_V (n_Reset); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Reset (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Reset (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Reset (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -308,15 +369,23 @@ public virtual unsafe void Reset () #pragma warning disable 0169 static Delegate GetSkip_JHandler () { - if (cb_skip_Skip_J_J == null) - cb_skip_Skip_J_J = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPJ_J (n_Skip_J)); - return cb_skip_Skip_J_J; + return cb_skip_Skip_J_J ??= new _JniMarshal_PPJ_J (n_Skip_J); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static long n_Skip_J (IntPtr jnienv, IntPtr native__this, long byteCount) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return __this.Skip (byteCount); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return __this.Skip (byteCount); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Streams/Java.IO.OutputStream.cs b/tests/generator-Tests/expected.xaji/Streams/Java.IO.OutputStream.cs index 125cb5ce3..d65a3f18f 100644 --- a/tests/generator-Tests/expected.xaji/Streams/Java.IO.OutputStream.cs +++ b/tests/generator-Tests/expected.xaji/Streams/Java.IO.OutputStream.cs @@ -67,15 +67,22 @@ public unsafe OutputStream () : base (IntPtr.Zero, JniHandleOwnership.DoNotTrans #pragma warning disable 0169 static Delegate GetCloseHandler () { - if (cb_close_Close_V == null) - cb_close_Close_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Close)); - return cb_close_Close_V; + return cb_close_Close_V ??= new _JniMarshal_PP_V (n_Close); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Close (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Close (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Close (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -94,15 +101,22 @@ public virtual unsafe void Close () #pragma warning disable 0169 static Delegate GetFlushHandler () { - if (cb_flush_Flush_V == null) - cb_flush_Flush_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Flush)); - return cb_flush_Flush_V; + return cb_flush_Flush_V ??= new _JniMarshal_PP_V (n_Flush); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Flush (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Flush (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Flush (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -121,18 +135,25 @@ public virtual unsafe void Flush () #pragma warning disable 0169 static Delegate GetWrite_arrayBHandler () { - if (cb_write_Write_arrayB_V == null) - cb_write_Write_arrayB_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_Write_arrayB)); - return cb_write_Write_arrayB_V; + return cb_write_Write_arrayB_V ??= new _JniMarshal_PPL_V (n_Write_arrayB); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Write_arrayB (IntPtr jnienv, IntPtr native__this, IntPtr native_buffer) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); - __this.Write (buffer); - if (buffer != null) - JNIEnv.CopyArray (buffer, native_buffer); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); + __this.Write (buffer); + if (buffer != null) + JNIEnv.CopyArray (buffer, native_buffer); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -159,18 +180,25 @@ public virtual unsafe void Write (byte[] buffer) #pragma warning disable 0169 static Delegate GetWrite_arrayBIIHandler () { - if (cb_write_Write_arrayBII_V == null) - cb_write_Write_arrayBII_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPLII_V (n_Write_arrayBII)); - return cb_write_Write_arrayBII_V; + return cb_write_Write_arrayBII_V ??= new _JniMarshal_PPLII_V (n_Write_arrayBII); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Write_arrayBII (IntPtr jnienv, IntPtr native__this, IntPtr native_buffer, int offset, int count) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); - __this.Write (buffer, offset, count); - if (buffer != null) - JNIEnv.CopyArray (buffer, native_buffer); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var buffer = (byte[]) JNIEnv.GetArray (native_buffer, JniHandleOwnership.DoNotTransfer, typeof (byte)); + __this.Write (buffer, offset, count); + if (buffer != null) + JNIEnv.CopyArray (buffer, native_buffer); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -199,15 +227,22 @@ public virtual unsafe void Write (byte[] buffer, int offset, int count) #pragma warning disable 0169 static Delegate GetWrite_IHandler () { - if (cb_write_Write_I_V == null) - cb_write_Write_I_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPI_V (n_Write_I)); - return cb_write_Write_I_V; + return cb_write_Write_I_V ??= new _JniMarshal_PPI_V (n_Write_I); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Write_I (IntPtr jnienv, IntPtr native__this, int oneByte) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Write (oneByte); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Write (oneByte); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Throwable.cs b/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Throwable.cs index 3485bf63c..f11671c10 100644 --- a/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Throwable.cs +++ b/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Throwable.cs @@ -28,15 +28,23 @@ internal static IntPtr class_ref { #pragma warning disable 0169 static Delegate GetGetMessageHandler () { - if (cb_getMessage_GetMessage_Ljava_lang_String_ == null) - cb_getMessage_GetMessage_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetMessage)); - return cb_getMessage_GetMessage_Ljava_lang_String_; + return cb_getMessage_GetMessage_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_GetMessage); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetMessage (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Message); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Message); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/ClassWithoutNamespace.cs b/tests/generator-Tests/expected.xaji/TestInterface/ClassWithoutNamespace.cs index 42f25f2e4..5e948c04e 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/ClassWithoutNamespace.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/ClassWithoutNamespace.cs @@ -65,15 +65,22 @@ public unsafe ClassWithoutNamespace () : base (IntPtr.Zero, JniHandleOwnership.D #pragma warning disable 0169 static Delegate GetFooHandler () { - if (cb_Foo_Foo_V == null) - cb_Foo_Foo_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Foo)); - return cb_Foo_Foo_V; + return cb_Foo_Foo_V ??= new _JniMarshal_PP_V (n_Foo); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Foo (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Foo (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Foo (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/IInterfaceWithoutNamespace.cs b/tests/generator-Tests/expected.xaji/TestInterface/IInterfaceWithoutNamespace.cs index 77e0d32f4..a521ebded 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/IInterfaceWithoutNamespace.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/IInterfaceWithoutNamespace.cs @@ -46,15 +46,22 @@ public IInterfaceWithoutNamespaceInvoker (IntPtr handle, JniHandleOwnership tran #pragma warning disable 0169 static Delegate GetFooHandler () { - if (cb_Foo_Foo_V == null) - cb_Foo_Foo_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Foo)); - return cb_Foo_Foo_V; + return cb_Foo_Foo_V ??= new _JniMarshal_PP_V (n_Foo); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Foo (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Foo (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Foo (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.ICollection.cs b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.ICollection.cs index d0ecf3c2a..149974bda 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.ICollection.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.ICollection.cs @@ -53,17 +53,25 @@ public ICollectionInvoker (IntPtr handle, JniHandleOwnership transfer) : base (h #pragma warning disable 0169 static Delegate GetAdd_Ljava_lang_Object_Handler () { - if (cb_add_Add_Ljava_lang_Object__Z == null) - cb_add_Add_Ljava_lang_Object__Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_)); - return cb_add_Add_Ljava_lang_Object__Z; + return cb_add_Add_Ljava_lang_Object__Z ??= new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_Add_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_e) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); - bool __ret = __this.Add (e); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); + bool __ret = __this.Add (e); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -86,15 +94,22 @@ public unsafe bool Add (global::Java.Lang.Object e) #pragma warning disable 0169 static Delegate GetClearHandler () { - if (cb_clear_Clear_V == null) - cb_clear_Clear_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Clear)); - return cb_clear_Clear_V; + return cb_clear_Clear_V ??= new _JniMarshal_PP_V (n_Clear); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Clear (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Clear (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Clear (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IDeque.cs b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IDeque.cs index 2253c2480..385de8d0d 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IDeque.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IDeque.cs @@ -53,17 +53,25 @@ public IDequeInvoker (IntPtr handle, JniHandleOwnership transfer) : base (handle #pragma warning disable 0169 static Delegate GetAdd_Ljava_lang_Object_Handler () { - if (cb_add_Add_Ljava_lang_Object__Z == null) - cb_add_Add_Ljava_lang_Object__Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_)); - return cb_add_Add_Ljava_lang_Object__Z; + return cb_add_Add_Ljava_lang_Object__Z ??= new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_Add_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_e) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); - bool __ret = __this.Add (e); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); + bool __ret = __this.Add (e); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -86,15 +94,22 @@ public unsafe bool Add (global::Java.Lang.Object e) #pragma warning disable 0169 static Delegate GetClearHandler () { - if (cb_clear_Clear_V == null) - cb_clear_Clear_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Clear)); - return cb_clear_Clear_V; + return cb_clear_Clear_V ??= new _JniMarshal_PP_V (n_Clear); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Clear (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Clear (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Clear (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IQueue.cs b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IQueue.cs index 22715da9e..0b33e14d1 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IQueue.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IQueue.cs @@ -51,17 +51,25 @@ public IQueueInvoker (IntPtr handle, JniHandleOwnership transfer) : base (handle #pragma warning disable 0169 static Delegate GetAdd_Ljava_lang_Object_Handler () { - if (cb_add_Add_Ljava_lang_Object__Z == null) - cb_add_Add_Ljava_lang_Object__Z = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_)); - return cb_add_Add_Ljava_lang_Object__Z; + return cb_add_Add_Ljava_lang_Object__Z ??= new _JniMarshal_PPL_Z (n_Add_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static bool n_Add_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_e) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); - bool __ret = __this.Add (e); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var e = global::Java.Lang.Object.GetObject (native_e, JniHandleOwnership.DoNotTransfer); + bool __ret = __this.Add (e); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -84,15 +92,22 @@ public unsafe bool Add (global::Java.Lang.Object e) #pragma warning disable 0169 static Delegate GetClearHandler () { - if (cb_clear_Clear_V == null) - cb_clear_Clear_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_V (n_Clear)); - return cb_clear_Clear_V; + return cb_clear_Clear_V ??= new _JniMarshal_PP_V (n_Clear); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Clear (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - __this.Clear (); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + __this.Clear (); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericImplementation.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericImplementation.cs index bb9ad3ab3..30fa85cf1 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericImplementation.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericImplementation.cs @@ -67,18 +67,25 @@ public unsafe GenericImplementation () : base (IntPtr.Zero, JniHandleOwnership.D #pragma warning disable 0169 static Delegate GetSetObject_arrayBHandler () { - if (cb_SetObject_SetObject_arrayB_V == null) - cb_SetObject_SetObject_arrayB_V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_arrayB)); - return cb_SetObject_SetObject_arrayB_V; + return cb_SetObject_SetObject_arrayB_V ??= new _JniMarshal_PPL_V (n_SetObject_arrayB); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_arrayB (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = (byte[]) JNIEnv.GetArray (native_value, JniHandleOwnership.DoNotTransfer, typeof (byte)); - __this.SetObject (value); - if (value != null) - JNIEnv.CopyArray (value, native_value); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = (byte[]) JNIEnv.GetArray (native_value, JniHandleOwnership.DoNotTransfer, typeof (byte)); + __this.SetObject (value); + if (value != null) + JNIEnv.CopyArray (value, native_value); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericObjectPropertyImplementation.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericObjectPropertyImplementation.cs index f3b3ad260..25f9b9f6e 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericObjectPropertyImplementation.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericObjectPropertyImplementation.cs @@ -67,15 +67,23 @@ public unsafe GenericObjectPropertyImplementation () : base (IntPtr.Zero, JniHan #pragma warning disable 0169 static Delegate GetGetObjectHandler () { - if (cb_getObject_GetObject_Ljava_lang_Object_ == null) - cb_getObject_GetObject_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetObject)); - return cb_getObject_GetObject_Ljava_lang_Object_; + return cb_getObject_GetObject_Ljava_lang_Object_ ??= new _JniMarshal_PP_L (n_GetObject); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.Object); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.Object); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -83,16 +91,23 @@ static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetObject_Ljava_lang_Object_Handler () { - if (cb_setObject_SetObject_Ljava_lang_Object__V == null) - cb_setObject_SetObject_Ljava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_)); - return cb_setObject_SetObject_Ljava_lang_Object__V; + return cb_setObject_SetObject_Ljava_lang_Object__V ??= new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native__object) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var @object = global::Java.Lang.Object.GetObject (native__object, JniHandleOwnership.DoNotTransfer); - __this.Object = @object; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var @object = global::Java.Lang.Object.GetObject (native__object, JniHandleOwnership.DoNotTransfer); + __this.Object = @object; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringImplementation.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringImplementation.cs index 8b302fdf1..b0bf63ebf 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringImplementation.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringImplementation.cs @@ -67,18 +67,25 @@ public unsafe GenericStringImplementation () : base (IntPtr.Zero, JniHandleOwner #pragma warning disable 0169 static Delegate GetSetObject_arrayLjava_lang_String_Handler () { - if (cb_SetObject_SetObject_arrayLjava_lang_String__V == null) - cb_SetObject_SetObject_arrayLjava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_arrayLjava_lang_String_)); - return cb_SetObject_SetObject_arrayLjava_lang_String__V; + return cb_SetObject_SetObject_arrayLjava_lang_String__V ??= new _JniMarshal_PPL_V (n_SetObject_arrayLjava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_arrayLjava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = (string[]) JNIEnv.GetArray (native_value, JniHandleOwnership.DoNotTransfer, typeof (string)); - __this.SetObject (value); - if (value != null) - JNIEnv.CopyArray (value, native_value); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = (string[]) JNIEnv.GetArray (native_value, JniHandleOwnership.DoNotTransfer, typeof (string)); + __this.SetObject (value); + if (value != null) + JNIEnv.CopyArray (value, native_value); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringPropertyImplementation.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringPropertyImplementation.cs index 87c092a78..cf2219361 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringPropertyImplementation.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringPropertyImplementation.cs @@ -67,15 +67,23 @@ public unsafe GenericStringPropertyImplementation () : base (IntPtr.Zero, JniHan #pragma warning disable 0169 static Delegate GetGetObjectHandler () { - if (cb_getObject_GetObject_Ljava_lang_String_ == null) - cb_getObject_GetObject_Ljava_lang_String_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetObject)); - return cb_getObject_GetObject_Ljava_lang_String_; + return cb_getObject_GetObject_Ljava_lang_String_ ??= new _JniMarshal_PP_L (n_GetObject); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.NewString (__this.Object); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.NewString (__this.Object); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -83,16 +91,23 @@ static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetObject_Ljava_lang_String_Handler () { - if (cb_SetObject_SetObject_Ljava_lang_String__V == null) - cb_SetObject_SetObject_Ljava_lang_String__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_String_)); - return cb_SetObject_SetObject_Ljava_lang_String__V; + return cb_SetObject_SetObject_Ljava_lang_String__V ??= new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_String_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_Ljava_lang_String_ (IntPtr jnienv, IntPtr native__this, IntPtr native__object) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var @object = JNIEnv.GetString (native__object, JniHandleOwnership.DoNotTransfer); - __this.Object = @object; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var @object = JNIEnv.GetString (native__object, JniHandleOwnership.DoNotTransfer); + __this.Object = @object; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericInterface.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericInterface.cs index 30efa1d2d..0af322f2b 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericInterface.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericInterface.cs @@ -49,16 +49,23 @@ public IGenericInterfaceInvoker (IntPtr handle, JniHandleOwnership transfer) : b #pragma warning disable 0169 static Delegate GetSetObject_Ljava_lang_Object_Handler () { - if (cb_SetObject_SetObject_Ljava_lang_Object__V == null) - cb_SetObject_SetObject_Ljava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_)); - return cb_SetObject_SetObject_Ljava_lang_Object__V; + return cb_SetObject_SetObject_Ljava_lang_Object__V ??= new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); - __this.SetObject (value); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); + __this.SetObject (value); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericPropertyInterface.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericPropertyInterface.cs index 71666dfe8..7c34f0e23 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericPropertyInterface.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericPropertyInterface.cs @@ -55,15 +55,23 @@ public IGenericPropertyInterfaceInvoker (IntPtr handle, JniHandleOwnership trans #pragma warning disable 0169 static Delegate GetGetObjectHandler () { - if (cb_getObject_GetObject_Ljava_lang_Object_ == null) - cb_getObject_GetObject_Ljava_lang_Object_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_GetObject)); - return cb_getObject_GetObject_Ljava_lang_Object_; + return cb_getObject_GetObject_Ljava_lang_Object_ ??= new _JniMarshal_PP_L (n_GetObject); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - return JNIEnv.ToLocalJniHandle (__this.Object); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.Object); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -71,16 +79,23 @@ static IntPtr n_GetObject (IntPtr jnienv, IntPtr native__this) #pragma warning disable 0169 static Delegate GetSetObject_Ljava_lang_Object_Handler () { - if (cb_setObject_SetObject_Ljava_lang_Object__V == null) - cb_setObject_SetObject_Ljava_lang_Object__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_)); - return cb_setObject_SetObject_Ljava_lang_Object__V; + return cb_setObject_SetObject_Ljava_lang_Object__V ??= new _JniMarshal_PPL_V (n_SetObject_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetObject_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native__object) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var @object = global::Java.Lang.Object.GetObject (native__object, JniHandleOwnership.DoNotTransfer); - __this.Object = @object; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var @object = global::Java.Lang.Object.GetObject (native__object, JniHandleOwnership.DoNotTransfer); + __this.Object = @object; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.ITestInterface.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.ITestInterface.cs index e82e59ef6..ff6843fe1 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.ITestInterface.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.ITestInterface.cs @@ -110,17 +110,25 @@ public ITestInterfaceInvoker (IntPtr handle, JniHandleOwnership transfer) : base #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_tag) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetSpanFlags (tag); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetSpanFlags (tag); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -141,16 +149,23 @@ public unsafe int GetSpanFlags (global::Java.Lang.Object tag) #pragma warning disable 0169 static Delegate GetAppend_Ljava_lang_CharSequence_Handler () { - if (cb_append_Append_Ljava_lang_CharSequence__V == null) - cb_append_Append_Ljava_lang_CharSequence__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_Append_Ljava_lang_CharSequence_)); - return cb_append_Append_Ljava_lang_CharSequence__V; + return cb_append_Append_Ljava_lang_CharSequence__V ??= new _JniMarshal_PPL_V (n_Append_Ljava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Append_Ljava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); - __this.Append (value); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); + __this.Append (value); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -172,17 +187,25 @@ public unsafe void Append (global::Java.Lang.ICharSequence value) #pragma warning disable 0169 static Delegate GetIdentity_Ljava_lang_CharSequence_Handler () { - if (cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ == null) - cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_L (n_Identity_Ljava_lang_CharSequence_)); - return cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_; + return cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ ??= new _JniMarshal_PPL_L (n_Identity_Ljava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Identity_Ljava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); - IntPtr __ret = CharSequence.ToLocalJniHandle (__this.IdentityFormatted (value)); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); + IntPtr __ret = CharSequence.ToLocalJniHandle (__this.IdentityFormatted (value)); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.TestInterfaceImplementation.cs b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.TestInterfaceImplementation.cs index 9dec6d285..1ee0dbc2f 100644 --- a/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.TestInterfaceImplementation.cs +++ b/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.TestInterfaceImplementation.cs @@ -88,17 +88,25 @@ public unsafe TestInterfaceImplementation () : base (IntPtr.Zero, JniHandleOwner #pragma warning disable 0169 static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler () { - if (cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I == null) - cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_)); - return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I; + return cb_getSpanFlags_GetSpanFlags_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_GetSpanFlags_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_tag) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); - int __ret = __this.GetSpanFlags (tag); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var tag = global::Java.Lang.Object.GetObject (native_tag, JniHandleOwnership.DoNotTransfer); + int __ret = __this.GetSpanFlags (tag); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -110,16 +118,23 @@ static int n_GetSpanFlags_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this #pragma warning disable 0169 static Delegate GetAppend_Ljava_lang_CharSequence_Handler () { - if (cb_append_Append_Ljava_lang_CharSequence__V == null) - cb_append_Append_Ljava_lang_CharSequence__V = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_V (n_Append_Ljava_lang_CharSequence_)); - return cb_append_Append_Ljava_lang_CharSequence__V; + return cb_append_Append_Ljava_lang_CharSequence__V ??= new _JniMarshal_PPL_V (n_Append_Ljava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_Append_Ljava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); - __this.Append (value); + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); + __this.Append (value); + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 @@ -138,17 +153,25 @@ public void Append (string value) #pragma warning disable 0169 static Delegate GetIdentity_Ljava_lang_CharSequence_Handler () { - if (cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ == null) - cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_L (n_Identity_Ljava_lang_CharSequence_)); - return cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_; + return cb_identity_Identity_Ljava_lang_CharSequence__Ljava_lang_CharSequence_ ??= new _JniMarshal_PPL_L (n_Identity_Ljava_lang_CharSequence_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_Identity_Ljava_lang_CharSequence_ (IntPtr jnienv, IntPtr native__this, IntPtr native_value) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); - IntPtr __ret = CharSequence.ToLocalJniHandle (__this.IdentityFormatted (value)); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var value = global::Java.Lang.Object.GetObject (native_value, JniHandleOwnership.DoNotTransfer); + IntPtr __ret = CharSequence.ToLocalJniHandle (__this.IdentityFormatted (value)); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.IComparable.cs b/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.IComparable.cs index 96f2d33c1..c2b05a808 100644 --- a/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.IComparable.cs +++ b/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.IComparable.cs @@ -49,17 +49,25 @@ public IComparableInvoker (IntPtr handle, JniHandleOwnership transfer) : base (h #pragma warning disable 0169 static Delegate GetCompareTo_Ljava_lang_Object_Handler () { - if (cb_compareTo_CompareTo_Ljava_lang_Object__I == null) - cb_compareTo_CompareTo_Ljava_lang_Object__I = JNINativeWrapper.CreateDelegate (new _JniMarshal_PPL_I (n_CompareTo_Ljava_lang_Object_)); - return cb_compareTo_CompareTo_Ljava_lang_Object__I; + return cb_compareTo_CompareTo_Ljava_lang_Object__I ??= new _JniMarshal_PPL_I (n_CompareTo_Ljava_lang_Object_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static int n_CompareTo_Ljava_lang_Object_ (IntPtr jnienv, IntPtr native__this, IntPtr native_another) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); - var another = global::Java.Lang.Object.GetObject (native_another, JniHandleOwnership.DoNotTransfer); - int __ret = __this.CompareTo (another); - return __ret; + var __envp = new global::Java.Interop.JniTransition (jnienv); + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + var another = global::Java.Lang.Object.GetObject (native_another, JniHandleOwnership.DoNotTransfer); + int __ret = __this.CompareTo (another); + return __ret; + } catch (global::System.Exception __e) { + global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + __envp.Dispose (); + } } #pragma warning restore 0169 diff --git a/tools/generator/SourceWriters/Attributes/DebuggerDisableUserUnhandledExceptionsAttributeAttr.cs b/tools/generator/SourceWriters/Attributes/DebuggerDisableUserUnhandledExceptionsAttributeAttr.cs index c11ea1a50..0f7a6ace1 100644 --- a/tools/generator/SourceWriters/Attributes/DebuggerDisableUserUnhandledExceptionsAttributeAttr.cs +++ b/tools/generator/SourceWriters/Attributes/DebuggerDisableUserUnhandledExceptionsAttributeAttr.cs @@ -11,7 +11,7 @@ public class DebuggerDisableUserUnhandledExceptionsAttributeAttr : AttributeWrit { public override void WriteAttribute (CodeWriter writer) { - writer.WriteLine ("[global::System.Diagnostics.DebuggerDisableUserUnhandledExceptionsAttribute]"); + writer.WriteLine ("[global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions]"); } } } diff --git a/tools/generator/SourceWriters/MethodCallback.cs b/tools/generator/SourceWriters/MethodCallback.cs index 913345580..72eacc0b8 100644 --- a/tools/generator/SourceWriters/MethodCallback.cs +++ b/tools/generator/SourceWriters/MethodCallback.cs @@ -91,7 +91,7 @@ protected override void WriteBody (CodeWriter writer) writer.WriteLine ("} catch (global::System.Exception __e) {"); writer.Indent (); - writer.WriteLine ("JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e);"); + writer.WriteLine ("global::Java.Interop.JniEnvironment.Runtime.OnUserUnhandledException (ref __envp, __e);"); if (!method.IsVoid) writer.WriteLine ("return default;");