private static int BaseOffset(IntPtr type) { Debug.Assert(type != IntPtr.Zero); int typeSize = Marshal.ReadInt32(type, TypeOffset.tp_basicsize); Debug.Assert(typeSize > 0 && typeSize <= ExceptionOffset.Size()); return(typeSize); }
public static int Size(IntPtr ob) { if (IsException(ob)) { return(ExceptionOffset.Size()); } #if PYTHON_WITH_PYDEBUG return(6 * IntPtr.Size); #else return(4 * IntPtr.Size); #endif }
public static int Size(IntPtr ob) { if ((Runtime.PyObject_TypeCheck(ob, Exceptions.BaseException) || (Runtime.PyType_Check(ob) && Runtime.PyType_IsSubtype(ob, Exceptions.BaseException)))) { return(ExceptionOffset.Size()); } #if PYTHON_WITH_PYDEBUG return(6 * IntPtr.Size); #else return(4 * IntPtr.Size); #endif }
public static int Size(IntPtr ob) { #if (PYTHON32 || PYTHON33 || PYTHON33) if ((Runtime.PyObject_TypeCheck(ob, Exceptions.BaseException) || (Runtime.PyType_Check(ob) && Runtime.PyType_IsSubtype(ob, Exceptions.BaseException)))) { return(ExceptionOffset.Size()); } #endif #if (Py_DEBUG) return(6 * IntPtr.Size); #else return(4 * IntPtr.Size); #endif }