~inkscape.dev/inkscape-devlibs64/trunk

« back to all changes in this revision

Viewing changes to python/include/memoryobject.h

  • Committer: Eduard Braun
  • Date: 2016-10-22 16:51:19 UTC
  • Revision ID: eduard.braun2@gmx.de-20161022165119-9eosgy6lp8j1kzli
Update Python to version 2.7.12

Included modules:
  coverage 4.2
  lxml 3.6.4
  numpy 1.11.2
  scour 0.35
  six 1.10.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Memory view object. In Python this is available as "memoryview". */
2
 
 
3
 
#ifndef Py_MEMORYOBJECT_H
4
 
#define Py_MEMORYOBJECT_H
5
 
#ifdef __cplusplus
6
 
extern "C" {
7
 
#endif
8
 
 
9
 
PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
10
 
 
11
 
#define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)
12
 
 
13
 
/* Get a pointer to the underlying Py_buffer of a memoryview object. */
14
 
#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view)
15
 
/* Get a pointer to the PyObject from which originates a memoryview object. */
16
 
#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj)
17
 
 
18
 
 
19
 
PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, 
20
 
                                                  int buffertype, 
21
 
                                                  char fort);
22
 
 
23
 
    /* Return a contiguous chunk of memory representing the buffer
24
 
       from an object in a memory view object.  If a copy is made then the
25
 
       base object for the memory view will be a *new* bytes object. 
26
 
       
27
 
       Otherwise, the base-object will be the object itself and no 
28
 
       data-copying will be done. 
29
 
 
30
 
       The buffertype argument can be PyBUF_READ, PyBUF_WRITE,
31
 
       PyBUF_SHADOW to determine whether the returned buffer
32
 
       should be READONLY, WRITABLE, or set to update the
33
 
       original buffer if a copy must be made.  If buffertype is
34
 
       PyBUF_WRITE and the buffer is not contiguous an error will
35
 
       be raised.  In this circumstance, the user can use
36
 
       PyBUF_SHADOW to ensure that a a writable temporary
37
 
       contiguous buffer is returned.  The contents of this
38
 
       contiguous buffer will be copied back into the original
39
 
       object after the memoryview object is deleted as long as
40
 
       the original object is writable and allows setting an
41
 
       exclusive write lock. If this is not allowed by the
42
 
       original object, then a BufferError is raised.
43
 
       
44
 
       If the object is multi-dimensional and if fortran is 'F',
45
 
       the first dimension of the underlying array will vary the
46
 
       fastest in the buffer.  If fortran is 'C', then the last
47
 
       dimension will vary the fastest (C-style contiguous).  If
48
 
       fortran is 'A', then it does not matter and you will get
49
 
       whatever the object decides is more efficient.  
50
 
 
51
 
       A new reference is returned that must be DECREF'd when finished.
52
 
    */
53
 
 
54
 
PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base);
55
 
 
56
 
PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info);
57
 
    /* create new if bufptr is NULL 
58
 
        will be a new bytesobject in base */
59
 
 
60
 
 
61
 
/* The struct is declared here so that macros can work, but it shouldn't
62
 
   be considered public. Don't access those fields directly, use the macros
63
 
   and functions instead! */
64
 
typedef struct {
65
 
    PyObject_HEAD
66
 
    PyObject *base;
67
 
    Py_buffer view;
68
 
} PyMemoryViewObject;
69
 
 
70
 
 
71
 
#ifdef __cplusplus
72
 
}
73
 
#endif
74
 
#endif /* !Py_MEMORYOBJECT_H */
 
1
/* Memory view object. In Python this is available as "memoryview". */
 
2
 
 
3
#ifndef Py_MEMORYOBJECT_H
 
4
#define Py_MEMORYOBJECT_H
 
5
#ifdef __cplusplus
 
6
extern "C" {
 
7
#endif
 
8
 
 
9
PyAPI_DATA(PyTypeObject) PyMemoryView_Type;
 
10
 
 
11
#define PyMemoryView_Check(op) (Py_TYPE(op) == &PyMemoryView_Type)
 
12
 
 
13
/* Get a pointer to the underlying Py_buffer of a memoryview object. */
 
14
#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view)
 
15
/* Get a pointer to the PyObject from which originates a memoryview object. */
 
16
#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj)
 
17
 
 
18
 
 
19
PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, 
 
20
                                                  int buffertype, 
 
21
                                                  char fort);
 
22
 
 
23
    /* Return a contiguous chunk of memory representing the buffer
 
24
       from an object in a memory view object.  If a copy is made then the
 
25
       base object for the memory view will be a *new* bytes object. 
 
26
       
 
27
       Otherwise, the base-object will be the object itself and no 
 
28
       data-copying will be done. 
 
29
 
 
30
       The buffertype argument can be PyBUF_READ, PyBUF_WRITE,
 
31
       PyBUF_SHADOW to determine whether the returned buffer
 
32
       should be READONLY, WRITABLE, or set to update the
 
33
       original buffer if a copy must be made.  If buffertype is
 
34
       PyBUF_WRITE and the buffer is not contiguous an error will
 
35
       be raised.  In this circumstance, the user can use
 
36
       PyBUF_SHADOW to ensure that a writable temporary
 
37
       contiguous buffer is returned.  The contents of this
 
38
       contiguous buffer will be copied back into the original
 
39
       object after the memoryview object is deleted as long as
 
40
       the original object is writable and allows setting an
 
41
       exclusive write lock. If this is not allowed by the
 
42
       original object, then a BufferError is raised.
 
43
       
 
44
       If the object is multi-dimensional and if fortran is 'F',
 
45
       the first dimension of the underlying array will vary the
 
46
       fastest in the buffer.  If fortran is 'C', then the last
 
47
       dimension will vary the fastest (C-style contiguous).  If
 
48
       fortran is 'A', then it does not matter and you will get
 
49
       whatever the object decides is more efficient.  
 
50
 
 
51
       A new reference is returned that must be DECREF'd when finished.
 
52
    */
 
53
 
 
54
PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base);
 
55
 
 
56
PyAPI_FUNC(PyObject *) PyMemoryView_FromBuffer(Py_buffer *info);
 
57
    /* create new if bufptr is NULL 
 
58
        will be a new bytesobject in base */
 
59
 
 
60
 
 
61
/* The struct is declared here so that macros can work, but it shouldn't
 
62
   be considered public. Don't access those fields directly, use the macros
 
63
   and functions instead! */
 
64
typedef struct {
 
65
    PyObject_HEAD
 
66
    PyObject *base;
 
67
    Py_buffer view;
 
68
} PyMemoryViewObject;
 
69
 
 
70
 
 
71
#ifdef __cplusplus
 
72
}
 
73
#endif
 
74
#endif /* !Py_MEMORYOBJECT_H */