Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
        internal static bool IsManagedType(BorrowedReference type)
        {
            var flags = PyType.GetFlags(type);

            return((flags & TypeFlags.HasClrInstance) != 0);
        }