Source code for rootpy.memory.ownership

from __future__ import absolute_import

from .. import compiled as C

__all__ = [
    'GetOwnership',
]

C.register_code("""
    #include <sys/types.h>       // for ssize_t

    struct _object;

    struct TFakeObjectProxy {
       ssize_t fRefCnt;          // PyObject_HEAD
       void* fPyType;            // PyObject_HEAD
       void* fRootObj;
       int fFlags;
    };

    bool GetOwnership(_object* obj) {
       return (reinterpret_cast<TFakeObjectProxy*>(obj))->fFlags & 0x0001;
    }
""", ["GetOwnership"])


[docs]def GetOwnership(obj): """ The analagous function to :func:``ROOT.SetOwnership``. This function is intended for diagnostic purposes and is not guaranteed to keep working. """ # This is not a straight assignment because C.GetOwnership causes # finalsetup and compilation. return C.GetOwnership(obj)