Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions runtime/xamarin/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ enum NSObjectFlags {
NSObjectFlagsHasManagedRef = 32,
// 64, // Used by SoM
NSObjectFlagsIsCustomType = 128,
NSObjectFlagsIsUserTypeKnown = 256,
NSObjectFlagsIsUserType = 512,
};

enum XamarinGCHandleType : int {
Expand Down
27 changes: 24 additions & 3 deletions src/Foundation/NSObject2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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;
Expand All @@ -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) {
Expand Down Expand Up @@ -861,6 +881,7 @@ public NativeHandle Handle {
Runtime.UnregisterNSObject (handle, this);
}

flags &= ~(Flags.IsUserTypeKnown | Flags.IsUserType);
handle = value;

if (handle != IntPtr.Zero)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down
Loading
Loading