diff --git a/runtime/xamarin/main.h b/runtime/xamarin/main.h index 9b7826c3c89..347505b29cb 100644 --- a/runtime/xamarin/main.h +++ b/runtime/xamarin/main.h @@ -58,6 +58,8 @@ enum NSObjectFlags { NSObjectFlagsHasManagedRef = 32, // 64, // Used by SoM NSObjectFlagsIsCustomType = 128, + NSObjectFlagsIsUserTypeKnown = 256, + NSObjectFlagsIsUserType = 512, }; enum XamarinGCHandleType : int { diff --git a/src/Foundation/NSObject2.cs b/src/Foundation/NSObject2.cs index ae2f04e0496..74b1e96b183 100644 --- a/src/Foundation/NSObject2.cs +++ b/src/Foundation/NSObject2.cs @@ -266,6 +266,8 @@ internal enum Flags : uint { HasManagedRef = 32, // 64, // Used by SoM IsCustomType = 128, + IsUserTypeKnown = 256, + IsUserType = 512, } // Must be kept in sync with the same enum in trampolines.h @@ -312,6 +314,24 @@ internal bool InFinalizerQueue { get { return ((flags & Flags.InFinalizerQueue) == Flags.InFinalizerQueue); } } + bool TryGetIsUserType (NativeHandle handle, out bool isUserType, [NotNullWhen (false)] out string? error_message) + { + var currentFlags = flags; + if ((currentFlags & Flags.IsUserTypeKnown) == Flags.IsUserTypeKnown) { + isUserType = (currentFlags & Flags.IsUserType) == Flags.IsUserType; + error_message = null; + return true; + } + + if (!Runtime.TryGetIsUserType (handle, out isUserType, out error_message)) + return false; + + flags = isUserType + ? flags | Flags.IsUserTypeKnown | Flags.IsUserType + : (flags | Flags.IsUserTypeKnown) & ~Flags.IsUserType; + return true; + } + bool IsCustomType { get { var value = (flags & Flags.IsCustomType) == Flags.IsCustomType; @@ -517,7 +537,7 @@ private void InitializeObject (bool alloced) bool native_ref = (flags & Flags.NativeRef) == Flags.NativeRef; - if (!Runtime.TryGetIsUserType (handle, out var isUserType, out var error_message)) + if (!TryGetIsUserType (handle, out var isUserType, out var error_message)) throw new InvalidOperationException ($"Unable to create a managed reference for the pointer {handle} whose managed type is {GetType ().FullName} because it wasn't possible to get the class of the pointer: {error_message}"); // Issue #25861: when we've just alloc'd a user type, defer adding it to the @@ -570,7 +590,7 @@ void CreateManagedRef (bool isUserType, bool retain) // if the ivar is already set. void EnsureManagedReference (NativeHandle newHandle) { - if (!Runtime.TryGetIsUserType (newHandle, out var isUserType, out var _) || !isUserType) + if (!TryGetIsUserType (newHandle, out var isUserType, out var _) || !isUserType) return; if (Runtime.GetGCHandleForObject (newHandle) != IntPtr.Zero) return; @@ -597,7 +617,7 @@ void EnsureManagedReference (NativeHandle newHandle) void ReleaseManagedRef () { var handle = this.Handle; // Get a copy of the handle, because it will be cleared out when calling Runtime.NativeObjectHasDied, and we still need the handle later. - if (!Runtime.TryGetIsUserType (handle, out var user_type, out var error_message)) + if (!TryGetIsUserType (handle, out var user_type, out var error_message)) throw new InvalidOperationException ($"Unable to release the managed reference for the pointer {handle} whose managed type is {GetType ().FullName} because it wasn't possible to get the class of the pointer: {error_message}"); HasManagedRef = false; if (!user_type) { @@ -861,6 +881,7 @@ public NativeHandle Handle { Runtime.UnregisterNSObject (handle, this); } + flags &= ~(Flags.IsUserTypeKnown | Flags.IsUserType); handle = value; if (handle != IntPtr.Zero) diff --git a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt index cd891dd2dcb..70086bb9229 100644 --- a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-preservedapis.txt @@ -581,6 +581,7 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.ToString() +Microsoft.MacCatalyst.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.MacCatalyst.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -593,6 +594,8 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::H Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-R2R-preservedapis.txt b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-R2R-preservedapis.txt index cd891dd2dcb..70086bb9229 100644 --- a/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-R2R-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-R2R-preservedapis.txt @@ -581,6 +581,7 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.ToString() +Microsoft.MacCatalyst.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.MacCatalyst.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -593,6 +594,8 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::H Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-interpreter-preservedapis.txt index 56eecd08aaf..62c5f43eb2e 100644 --- a/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-interpreter-preservedapis.txt @@ -167,6 +167,7 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.ToString() +Microsoft.MacCatalyst.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.MacCatalyst.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -178,6 +179,8 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::H Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-preservedapis.txt b/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-preservedapis.txt index 101124bf4b5..30ebdcd96b2 100644 --- a/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-preservedapis.txt @@ -150,6 +150,7 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject.set_Handle(ObjCRuntime.NativeHandl Microsoft.MacCatalyst.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.MacCatalyst.dll:Foundation.NSObject.ToString() +Microsoft.MacCatalyst.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.MacCatalyst.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.MacCatalyst.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -161,6 +162,8 @@ Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::H Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.MacCatalyst.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-Interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-Interpreter-preservedapis.txt index e3f66732e22..79db02c6a08 100644 --- a/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-Interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-Interpreter-preservedapis.txt @@ -524,6 +524,7 @@ Microsoft.tvOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.ToString() +Microsoft.tvOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.tvOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -536,6 +537,8 @@ Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManag Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-R2R-preservedapis.txt b/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-R2R-preservedapis.txt index e3f66732e22..79db02c6a08 100644 --- a/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-R2R-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/TVOS-CoreCLR-R2R-preservedapis.txt @@ -524,6 +524,7 @@ Microsoft.tvOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.ToString() +Microsoft.tvOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.tvOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -536,6 +537,8 @@ Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManag Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/TVOS-MonoVM-interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/TVOS-MonoVM-interpreter-preservedapis.txt index cfe222484fa..029599ac7c6 100644 --- a/tests/dotnet/UnitTests/expected/TVOS-MonoVM-interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/TVOS-MonoVM-interpreter-preservedapis.txt @@ -159,6 +159,7 @@ Microsoft.tvOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.ToString() +Microsoft.tvOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.tvOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -170,6 +171,8 @@ Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManag Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/TVOS-MonoVM-preservedapis.txt b/tests/dotnet/UnitTests/expected/TVOS-MonoVM-preservedapis.txt index 8e0e8bceaa8..63a98b18f3d 100644 --- a/tests/dotnet/UnitTests/expected/TVOS-MonoVM-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/TVOS-MonoVM-preservedapis.txt @@ -142,6 +142,7 @@ Microsoft.tvOS.dll:Foundation.NSObject.set_Handle(ObjCRuntime.NativeHandle) Microsoft.tvOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.tvOS.dll:Foundation.NSObject.ToString() +Microsoft.tvOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.tvOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.tvOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -153,6 +154,8 @@ Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManag Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.tvOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/iOS-CoreCLR-Interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/iOS-CoreCLR-Interpreter-preservedapis.txt index 08a7d52de49..84e0d9b219f 100644 --- a/tests/dotnet/UnitTests/expected/iOS-CoreCLR-Interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/iOS-CoreCLR-Interpreter-preservedapis.txt @@ -554,6 +554,7 @@ Microsoft.iOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.ToString() +Microsoft.iOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.iOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.iOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.iOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -566,6 +567,8 @@ Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManage Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/iOS-CoreCLR-R2R-preservedapis.txt b/tests/dotnet/UnitTests/expected/iOS-CoreCLR-R2R-preservedapis.txt index 08a7d52de49..84e0d9b219f 100644 --- a/tests/dotnet/UnitTests/expected/iOS-CoreCLR-R2R-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/iOS-CoreCLR-R2R-preservedapis.txt @@ -554,6 +554,7 @@ Microsoft.iOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.ToString() +Microsoft.iOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.iOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.iOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.iOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -566,6 +567,8 @@ Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManage Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/iOS-MonoVM-interpreter-preservedapis.txt b/tests/dotnet/UnitTests/expected/iOS-MonoVM-interpreter-preservedapis.txt index 07f5b2ebb5c..2266d9b629a 100644 --- a/tests/dotnet/UnitTests/expected/iOS-MonoVM-interpreter-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/iOS-MonoVM-interpreter-preservedapis.txt @@ -159,6 +159,7 @@ Microsoft.iOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_RemoveFromObjectMap(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.ToString() +Microsoft.iOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.iOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.iOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.iOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -170,6 +171,8 @@ Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManage Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags diff --git a/tests/dotnet/UnitTests/expected/iOS-MonoVM-preservedapis.txt b/tests/dotnet/UnitTests/expected/iOS-MonoVM-preservedapis.txt index 72d202de1f4..c497133e105 100644 --- a/tests/dotnet/UnitTests/expected/iOS-MonoVM-preservedapis.txt +++ b/tests/dotnet/UnitTests/expected/iOS-MonoVM-preservedapis.txt @@ -142,6 +142,7 @@ Microsoft.iOS.dll:Foundation.NSObject.set_Handle(ObjCRuntime.NativeHandle) Microsoft.iOS.dll:Foundation.NSObject.set_HasManagedRef(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.set_IsDirectBinding(System.Boolean) Microsoft.iOS.dll:Foundation.NSObject.ToString() +Microsoft.iOS.dll:Foundation.NSObject.TryGetIsUserType(ObjCRuntime.NativeHandle, out System.Boolean&, out System.String&) Microsoft.iOS.dll:Foundation.NSObject.xamarin_release_managed_ref(System.IntPtr, System.Byte) Microsoft.iOS.dll:Foundation.NSObject.xamarin_set_gchandle_with_flags_safe(System.IntPtr, System.IntPtr, Foundation.NSObject/XamarinGCHandleFlags, System.IntPtr) Microsoft.iOS.dll:Foundation.NSObject[] Foundation.NSDictionary::Keys() @@ -153,6 +154,8 @@ Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::HasManage Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::InFinalizerQueue Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsCustomType Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsDirectBinding +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserType +Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::IsUserTypeKnown Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::NativeRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObject/Flags::RegisteredToggleRef Microsoft.iOS.dll:Foundation.NSObject/Flags Foundation.NSObjectData::flags