diff --git a/src/Mono.Android/Android.Animation/AnimatorSet.cs b/src/Mono.Android/Android.Animation/AnimatorSet.cs index f8628846b20..c4670e987da 100644 --- a/src/Mono.Android/Android.Animation/AnimatorSet.cs +++ b/src/Mono.Android/Android.Animation/AnimatorSet.cs @@ -1,49 +1,48 @@ -#if ANDROID_11 - using System; +using Java.Interop; using Android.Runtime; namespace Android.Animation { public partial class AnimatorSet { - private static IntPtr id_setDuration_J; + static Delegate cb_setDuration_SetDuration_J_Landroid_animation_Animator_; + [Register ("setDuration", "(J)Landroid/animation/Animator;", "GetSetDuration_JHandler")] - public override Animator SetDuration (long duration) + public override unsafe Android.Animation.Animator SetDuration (long duration) { - if (id_setDuration_J == IntPtr.Zero) - id_setDuration_J = JNIEnv.GetMethodID (class_ref, "setDuration", "(J)Landroid/animation/Animator;"); - - if (base.GetType () == this.ThresholdType) { - return Java.Lang.Object.GetObject ( - JNIEnv.CallObjectMethod (base.Handle, id_setDuration_J, new JValue (duration)), - JniHandleOwnership.TransferLocalRef)!; - } else { - return Java.Lang.Object.GetObject ( - JNIEnv.CallNonvirtualObjectMethod ( - base.Handle, - this.ThresholdClass, - JNIEnv.GetMethodID (ThresholdClass, "setDuration", "(J)Landroid/animation/Animator;"), - new JValue (duration)), - JniHandleOwnership.TransferLocalRef)!; + const string __id = "setDuration.(J)Landroid/animation/Animator;"; + try { + JniArgumentValue* __args = stackalloc JniArgumentValue [1]; + __args [0] = new JniArgumentValue (duration); + var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args); + return global::Java.Lang.Object.GetObject (__rm.Handle, JniHandleOwnership.TransferLocalRef); + } finally { } } - private static Delegate? cb_setDuration_J; - - private static Delegate GetSetDuration_JHandler () +#pragma warning disable 0169 + static Delegate GetSetDuration_JHandler () { - if (cb_setDuration_J == null) - cb_setDuration_J = JNINativeWrapper.CreateDelegate (new Func (n_SetDuration_J)); - return cb_setDuration_J; + return cb_setDuration_SetDuration_J_Landroid_animation_Animator_ ??= new _JniMarshal_PPJ_L (n_SetDuration_J); } - - private static IntPtr n_SetDuration_J (IntPtr jnienv, IntPtr native__this, long duration) + + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] + static IntPtr n_SetDuration_J (IntPtr jnienv, IntPtr native__this, long duration) { - AnimatorSet @object = Java.Lang.Object.GetObject (native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToJniHandle (@object.SetDuration (duration)); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.SetDuration (duration)); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } +#pragma warning restore 0169 } } - -#endif diff --git a/src/Mono.Android/Android.Animation/ValueAnimator.cs b/src/Mono.Android/Android.Animation/ValueAnimator.cs index e83663abda5..299400cd007 100644 --- a/src/Mono.Android/Android.Animation/ValueAnimator.cs +++ b/src/Mono.Android/Android.Animation/ValueAnimator.cs @@ -1,50 +1,48 @@ -#if ANDROID_11 - using System; +using Java.Interop; using Android.Runtime; namespace Android.Animation { public partial class ValueAnimator { - private static IntPtr id_setDuration_J; + static Delegate cb_setDuration_SetDuration_J_Landroid_animation_Animator_; [Register ("setDuration", "(J)Landroid/animation/Animator;", "GetSetDuration_JHandler")] - public override Animator SetDuration (long duration) + public override unsafe Android.Animation.Animator SetDuration (long duration) { - if (id_setDuration_J == IntPtr.Zero) - id_setDuration_J = JNIEnv.GetMethodID (class_ref, "setDuration", "(J)Landroid/animation/Animator;"); - - if (base.GetType () == this.ThresholdType) { - return Java.Lang.Object.GetObject ( - JNIEnv.CallObjectMethod (base.Handle, id_setDuration_J, new JValue (duration)), - JniHandleOwnership.TransferLocalRef)!; - } else { - return Java.Lang.Object.GetObject ( - JNIEnv.CallNonvirtualObjectMethod ( - base.Handle, - this.ThresholdClass, - JNIEnv.GetMethodID (ThresholdClass, "setDuration", "(J)Landroid/animation/Animator;"), - new JValue (duration)), - JniHandleOwnership.TransferLocalRef)!; + const string __id = "setDuration.(J)Landroid/animation/Animator;"; + try { + JniArgumentValue* __args = stackalloc JniArgumentValue [1]; + __args [0] = new JniArgumentValue (duration); + var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args); + return global::Java.Lang.Object.GetObject (__rm.Handle, JniHandleOwnership.TransferLocalRef); + } finally { } } - private static Delegate? cb_setDuration_J; - - private static Delegate GetSetDuration_JHandler () +#pragma warning disable 0169 + static Delegate GetSetDuration_JHandler () { - if (cb_setDuration_J == null) - cb_setDuration_J = JNINativeWrapper.CreateDelegate (new Func (n_SetDuration_J)); - return cb_setDuration_J; + return cb_setDuration_SetDuration_J_Landroid_animation_Animator_ ??= new _JniMarshal_PPJ_L (n_SetDuration_J); } - - private static IntPtr n_SetDuration_J (IntPtr jnienv, IntPtr native__this, long duration) + + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] + static IntPtr n_SetDuration_J (IntPtr jnienv, IntPtr native__this, long duration) { - ValueAnimator @object = Java.Lang.Object.GetObject (native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToJniHandle (@object.SetDuration (duration)); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer); + return JNIEnv.ToLocalJniHandle (__this.SetDuration (duration)); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } +#pragma warning restore 0169 } } - -#endif diff --git a/src/Mono.Android/Android.Bluetooth/BluetoothGattServerCallback.cs b/src/Mono.Android/Android.Bluetooth/BluetoothGattServerCallback.cs index d133369a481..c2bfe9cb5f8 100644 --- a/src/Mono.Android/Android.Bluetooth/BluetoothGattServerCallback.cs +++ b/src/Mono.Android/Android.Bluetooth/BluetoothGattServerCallback.cs @@ -24,17 +24,26 @@ void ActualOnServiceAdded (ProfileState status, BluetoothGattService? service) #pragma warning disable 0169 static Delegate GetOnServiceAdded_ILandroid_bluetooth_BluetoothGattService_Handler_ext () { - if (cb_onServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext == null) - cb_onServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext = JNINativeWrapper.CreateDelegate ((Action) n_OnServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext); - return cb_onServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext; + return cb_onServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext ??= new _JniMarshal_PPIL_V (n_OnServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_OnServiceAdded_ILandroid_bluetooth_BluetoothGattService_ext (IntPtr jnienv, IntPtr native__this, int native_status, IntPtr native_service) { - Android.Bluetooth.BluetoothGattServerCallback __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - Android.Bluetooth.ProfileState status = (Android.Bluetooth.ProfileState) native_status; - var service = global::Java.Lang.Object.GetObject (native_service, JniHandleOwnership.DoNotTransfer); - __this.ActualOnServiceAdded (status, service); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return; + + try { + Android.Bluetooth.BluetoothGattServerCallback __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + Android.Bluetooth.ProfileState status = (Android.Bluetooth.ProfileState) native_status; + var service = global::Java.Lang.Object.GetObject (native_service, JniHandleOwnership.DoNotTransfer); + __this.ActualOnServiceAdded (status, service); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169 } diff --git a/src/Mono.Android/Android.Telephony/CellInfo.cs b/src/Mono.Android/Android.Telephony/CellInfo.cs index eefa4c5c868..388f506c984 100644 --- a/src/Mono.Android/Android.Telephony/CellInfo.cs +++ b/src/Mono.Android/Android.Telephony/CellInfo.cs @@ -14,16 +14,25 @@ public partial class CellInfo { [global::System.Runtime.Versioning.SupportedOSPlatform ("android28.0")] static Delegate GetGetCellIdentityHandler () { - if (cb_getCellIdentity == null) - cb_getCellIdentity = JNINativeWrapper.CreateDelegate ((Func) n_GetCellIdentity); - return cb_getCellIdentity; + return cb_getCellIdentity ??= new _JniMarshal_PP_L (n_GetCellIdentity); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] [global::System.Runtime.Versioning.SupportedOSPlatform ("android28.0")] static IntPtr n_GetCellIdentity (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToLocalJniHandle (__this.CellIdentity); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.ToLocalJniHandle (__this.CellIdentity); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169 @@ -47,15 +56,24 @@ public unsafe virtual Android.Telephony.CellIdentity CellIdentity { #pragma warning disable 0169 static Delegate GetGetCellSignalStrengthHandler () { - if (cb_getCellSignalStrength == null) - cb_getCellSignalStrength = JNINativeWrapper.CreateDelegate ((Func) n_GetCellSignalStrength); - return cb_getCellSignalStrength; + return cb_getCellSignalStrength ??= new _JniMarshal_PP_L (n_GetCellSignalStrength); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static IntPtr n_GetCellSignalStrength (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToLocalJniHandle (__this.CellSignalStrength); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.ToLocalJniHandle (__this.CellSignalStrength); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169 diff --git a/src/Mono.Android/Android.Widget/AbsListView.cs b/src/Mono.Android/Android.Widget/AbsListView.cs index 0a4656a51c4..dbacdcccc2e 100644 --- a/src/Mono.Android/Android.Widget/AbsListView.cs +++ b/src/Mono.Android/Android.Widget/AbsListView.cs @@ -13,31 +13,49 @@ partial class AbsListView { #pragma warning disable 0169 static Delegate GetGetAdapterHandler () { - if (cb_getAdapter == null) - cb_getAdapter = JNINativeWrapper.CreateDelegate ((Func) n_GetAdapter); - return cb_getAdapter; + return cb_getAdapter ??= new _JniMarshal_PP_L (n_GetAdapter); } static IntPtr id_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); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.ToLocalJniHandle (__this.Adapter); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } static Delegate? cb_setAdapter_Landroid_widget_Adapter_; #pragma warning disable 0169 static Delegate GetSetAdapter_Landroid_widget_ListAdapter_Handler () { - if (cb_setAdapter_Landroid_widget_Adapter_ == null) - cb_setAdapter_Landroid_widget_Adapter_ = JNINativeWrapper.CreateDelegate ((Action) n_SetAdapter_Landroid_widget_ListAdapter_); - return cb_setAdapter_Landroid_widget_Adapter_; + return cb_setAdapter_Landroid_widget_Adapter_ ??= new _JniMarshal_PPL_V (n_SetAdapter_Landroid_widget_ListAdapter_); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] static void n_SetAdapter_Landroid_widget_ListAdapter_ (IntPtr jnienv, IntPtr native__this, IntPtr native_adapter) { - var __this = Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - __this.Adapter = Java.Interop.JavaConvert.FromJniHandle (native_adapter, JniHandleOwnership.DoNotTransfer); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return; + + try { + var __this = Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + __this.Adapter = Java.Interop.JavaConvert.FromJniHandle (native_adapter, JniHandleOwnership.DoNotTransfer); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169 diff --git a/src/Mono.Android/Java.Interop/TypeManager.cs b/src/Mono.Android/Java.Interop/TypeManager.cs index 8b775aea7db..f2e9a4bae7a 100644 --- a/src/Mono.Android/Java.Interop/TypeManager.cs +++ b/src/Mono.Android/Java.Interop/TypeManager.cs @@ -98,9 +98,7 @@ public int Compare (string x, string y) static _JniMarshal_PPLLLL_V? cb_activate; internal static Delegate GetActivateHandler () { - if (cb_activate == null) - cb_activate = (_JniMarshal_PPLLLL_V) JNINativeWrapper.CreateDelegate ((_JniMarshal_PPLLLL_V) n_Activate); - return cb_activate; + return cb_activate ??= new _JniMarshal_PPLLLL_V (n_Activate); } #if JAVA_INTEROP @@ -129,42 +127,53 @@ static Type[] GetParameterTypes (string? signature) return result; } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] [UnconditionalSuppressMessage ("Trimming", "IL2057", Justification = "Type.GetType() can never statically know the string value from parameter 'typename_ptr'.")] static void n_Activate (IntPtr jnienv, IntPtr jclass, IntPtr typename_ptr, IntPtr signature_ptr, IntPtr jobject, IntPtr parameters_ptr) { - var o = Java.Lang.Object.PeekObject (jobject); - var ex = o as IJavaPeerable; - if (ex != null) { - var state = ex.JniManagedPeerState; - if (!state.HasFlag (JniManagedPeerStates.Activatable) && !state.HasFlag (JniManagedPeerStates.Replaceable)) + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return; + + try { + var o = Java.Lang.Object.PeekObject (jobject); + var ex = o as IJavaPeerable; + if (ex != null) { + var state = ex.JniManagedPeerState; + if (!state.HasFlag (JniManagedPeerStates.Activatable) && !state.HasFlag (JniManagedPeerStates.Replaceable)) + return; + } + if (!ActivationEnabled) { + if (Logger.LogGlobalRef) { + Logger.Log (LogLevel.Info, "monodroid-gref", + FormattableString.Invariant ($"warning: Skipping managed constructor invocation for handle 0x{jobject:x} (key_handle 0x{JNIEnv.IdentityHash (jobject):x}). Please use JNIEnv.StartCreateInstance() + JNIEnv.FinishCreateInstance() instead of JNIEnv.NewObject() and/or JNIEnv.CreateInstance().")); + } return; - } - if (!ActivationEnabled) { - if (Logger.LogGlobalRef) { - Logger.Log (LogLevel.Info, "monodroid-gref", - FormattableString.Invariant ($"warning: Skipping managed constructor invocation for handle 0x{jobject:x} (key_handle 0x{JNIEnv.IdentityHash (jobject):x}). Please use JNIEnv.StartCreateInstance() + JNIEnv.FinishCreateInstance() instead of JNIEnv.NewObject() and/or JNIEnv.CreateInstance().")); } - return; - } - Type type = Type.GetType (JNIEnv.GetString (typename_ptr, JniHandleOwnership.DoNotTransfer)!, throwOnError:true)!; - if (type.IsGenericTypeDefinition) { - throw new NotSupportedException ( - "Constructing instances of generic types from Java is not supported, as the type parameters cannot be determined.", - CreateJavaLocationException ()); - } - Type[] ptypes = GetParameterTypes (JNIEnv.GetString (signature_ptr, JniHandleOwnership.DoNotTransfer)); - var parms = JNIEnv.GetObjectArray (parameters_ptr, ptypes); - var cinfo = type.GetConstructor (ptypes); - if (cinfo == null) { - throw CreateMissingConstructorException (type, ptypes); - } - if (o != null) { - cinfo.Invoke (o, parms); + Type type = Type.GetType (JNIEnv.GetString (typename_ptr, JniHandleOwnership.DoNotTransfer)!, throwOnError:true)!; + if (type.IsGenericTypeDefinition) { + throw new NotSupportedException ( + "Constructing instances of generic types from Java is not supported, as the type parameters cannot be determined.", + CreateJavaLocationException ()); + } + Type[] ptypes = GetParameterTypes (JNIEnv.GetString (signature_ptr, JniHandleOwnership.DoNotTransfer)); + var parms = JNIEnv.GetObjectArray (parameters_ptr, ptypes); + var cinfo = type.GetConstructor (ptypes); + if (cinfo == null) { + throw CreateMissingConstructorException (type, ptypes); + } + if (o != null) { + cinfo.Invoke (o, parms); + return; + } + + Activate (jobject, cinfo, parms); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); return; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); } - - Activate (jobject, cinfo, parms); } [UnconditionalSuppressMessage ("Trimming", "IL2072", Justification = "RuntimeHelpers.GetUninitializedObject() does not statically know the return value from ConstructorInfo.DeclaringType.")] diff --git a/src/Mono.Android/Java.Util/IList.cs b/src/Mono.Android/Java.Util/IList.cs index 0a927cfe566..75adc28c8ab 100644 --- a/src/Mono.Android/Java.Util/IList.cs +++ b/src/Mono.Android/Java.Util/IList.cs @@ -12,16 +12,25 @@ public partial interface IList [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android35.0")] private static Delegate GetReversedHandler () { - if (cb_reversed == null) - cb_reversed = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Reversed)); - return cb_reversed; + return cb_reversed ??= new _JniMarshal_PP_L (n_Reversed); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android35.0")] private static IntPtr n_Reversed (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToLocalJniHandle (__this.Reversed ()); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.ToLocalJniHandle (__this.Reversed ()); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169 diff --git a/src/Mono.Android/Java.Util/ISortedMap.cs b/src/Mono.Android/Java.Util/ISortedMap.cs index ef3d9dc8fad..2e7f67b8f3a 100644 --- a/src/Mono.Android/Java.Util/ISortedMap.cs +++ b/src/Mono.Android/Java.Util/ISortedMap.cs @@ -12,16 +12,25 @@ public partial interface ISortedMap [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android35.0")] private static Delegate GetReversedHandler () { - if (cb_reversed == null) - cb_reversed = JNINativeWrapper.CreateDelegate (new _JniMarshal_PP_L (n_Reversed)); - return cb_reversed; + return cb_reversed ??= new _JniMarshal_PP_L (n_Reversed); } + [global::System.Diagnostics.DebuggerDisableUserUnhandledExceptions] [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android35.0")] private static IntPtr n_Reversed (IntPtr jnienv, IntPtr native__this) { - var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; - return JNIEnv.ToLocalJniHandle (__this.Reversed ()); + if (!global::Java.Interop.JniEnvironment.BeginMarshalMethod (jnienv, out var __envp, out var __r)) + return default; + + try { + var __this = global::Java.Lang.Object.GetObject (jnienv, native__this, JniHandleOwnership.DoNotTransfer)!; + return JNIEnv.ToLocalJniHandle (__this.Reversed ()); + } catch (global::System.Exception __e) { + __r.OnUserUnhandledException (ref __envp, __e); + return default; + } finally { + global::Java.Interop.JniEnvironment.EndMarshalMethod (ref __envp); + } } #pragma warning restore 0169