/// <summary> /// Given a Python object, return the associated managed object or null. /// </summary> internal static ManagedType?GetManagedObject(BorrowedReference ob) { if (ob != null) { BorrowedReference tp = Runtime.PyObject_TYPE(ob); var flags = PyType.GetFlags(tp); if ((flags & TypeFlags.HasClrInstance) != 0) { var gc = TryGetGCHandle(ob, tp); return((ManagedType?)gc?.Target); } } return(null); }
internal static bool IsManagedType(BorrowedReference type) { var flags = PyType.GetFlags(type); return((flags & TypeFlags.HasClrInstance) != 0); }