LCOV - code coverage report
Current view: top level - Include/cpython - memoryobject.h (source / functions) Hit Total Coverage
Test: CPython 3.12 LCOV report [commit 5e6661bce9] Lines: 0 2 0.0 %
Date: 2023-03-20 08:15:36 Functions: 0 1 0.0 %
Branches: 0 0 -

           Branch data     Line data    Source code
       1                 :            : #ifndef Py_CPYTHON_MEMORYOBJECT_H
       2                 :            : #  error "this header file must not be included directly"
       3                 :            : #endif
       4                 :            : 
       5                 :            : PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type;
       6                 :            : 
       7                 :            : /* The structs are declared here so that macros can work, but they shouldn't
       8                 :            :    be considered public. Don't access their fields directly, use the macros
       9                 :            :    and functions instead! */
      10                 :            : #define _Py_MANAGED_BUFFER_RELEASED    0x001  /* access to exporter blocked */
      11                 :            : #define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002  /* free format */
      12                 :            : 
      13                 :            : typedef struct {
      14                 :            :     PyObject_HEAD
      15                 :            :     int flags;          /* state flags */
      16                 :            :     Py_ssize_t exports; /* number of direct memoryview exports */
      17                 :            :     Py_buffer master; /* snapshot buffer obtained from the original exporter */
      18                 :            : } _PyManagedBufferObject;
      19                 :            : 
      20                 :            : 
      21                 :            : /* memoryview state flags */
      22                 :            : #define _Py_MEMORYVIEW_RELEASED    0x001  /* access to master buffer blocked */
      23                 :            : #define _Py_MEMORYVIEW_C           0x002  /* C-contiguous layout */
      24                 :            : #define _Py_MEMORYVIEW_FORTRAN     0x004  /* Fortran contiguous layout */
      25                 :            : #define _Py_MEMORYVIEW_SCALAR      0x008  /* scalar: ndim = 0 */
      26                 :            : #define _Py_MEMORYVIEW_PIL         0x010  /* PIL-style layout */
      27                 :            : 
      28                 :            : typedef struct {
      29                 :            :     PyObject_VAR_HEAD
      30                 :            :     _PyManagedBufferObject *mbuf; /* managed buffer */
      31                 :            :     Py_hash_t hash;               /* hash value for read-only views */
      32                 :            :     int flags;                    /* state flags */
      33                 :            :     Py_ssize_t exports;           /* number of buffer re-exports */
      34                 :            :     Py_buffer view;               /* private copy of the exporter's view */
      35                 :            :     PyObject *weakreflist;
      36                 :            :     Py_ssize_t ob_array[1];       /* shape, strides, suboffsets */
      37                 :            : } PyMemoryViewObject;
      38                 :            : 
      39                 :            : #define _PyMemoryView_CAST(op) _Py_CAST(PyMemoryViewObject*, op)
      40                 :            : 
      41                 :            : /* Get a pointer to the memoryview's private copy of the exporter's buffer. */
      42                 :          0 : static inline Py_buffer* PyMemoryView_GET_BUFFER(PyObject *op) {
      43                 :          0 :     return (&_PyMemoryView_CAST(op)->view);
      44                 :            : }
      45                 :            : #define PyMemoryView_GET_BUFFER(op) PyMemoryView_GET_BUFFER(_PyObject_CAST(op))
      46                 :            : 
      47                 :            : /* Get a pointer to the exporting object (this may be NULL!). */
      48                 :            : static inline PyObject* PyMemoryView_GET_BASE(PyObject *op) {
      49                 :            :     return _PyMemoryView_CAST(op)->view.obj;
      50                 :            : }
      51                 :            : #define PyMemoryView_GET_BASE(op) PyMemoryView_GET_BASE(_PyObject_CAST(op))

Generated by: LCOV version 1.14