~ubuntu-branches/ubuntu/precise/grass/precise

« back to all changes in this revision

Viewing changes to swig/include/python/utils.i

  • Committer: Bazaar Package Importer
  • Author(s): Francesco Paolo Lovergine
  • Date: 2011-04-13 17:08:41 UTC
  • mfrom: (8.1.7 sid)
  • Revision ID: james.westby@ubuntu.com-20110413170841-ss1t9bic0d0uq0gz
Tags: 6.4.1-1
* New upstream version.
* Now build-dep on libjpeg-dev and current libreadline6-dev.
* Removed patch swig: obsolete.
* Policy bumped to 3.9.2, without changes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
%include "common.i"
3
 
 
4
 
%include "carrays.i"
5
 
%array_functions(int, intArray);
6
 
%array_functions(float, floatArray);
7
 
%array_functions(double, doubleArray);
8
 
 
9
 
%include "cpointer.i"
10
 
%pointer_functions(int, intp);
11
 
%pointer_functions(float, floatp);
12
 
%pointer_functions(double, doublep);
13
 
 
14
 
PyObject *ptr_to_cobj(void *p);
15
 
void *cobj_to_ptr(PyObject *o);
16
 
PyObject *ptr_to_buffer_const(const void *p, int size);
17
 
PyObject *ptr_to_buffer(void *p, int size);
18
 
const void *buffer_to_ptr_const(PyObject *o);
19
 
void *buffer_to_ptr(PyObject *o);
20
 
 
21
 
%{
22
 
 
23
 
static PyObject *ptr_to_cobj(void *p)
24
 
{
25
 
        return PyCObject_FromVoidPtr(p, NULL);
26
 
}
27
 
 
28
 
static void *cobj_to_ptr(PyObject *o)
29
 
{
30
 
        if (PyCObject_Check(o))
31
 
                return PyCObject_AsVoidPtr(o);
32
 
 
33
 
        PyErr_SetString(PyExc_ValueError,"CObject Expected");
34
 
        return NULL;
35
 
}
36
 
 
37
 
static PyObject *ptr_to_buffer_const(const void *p, int size)
38
 
{
39
 
        return PyBuffer_FromMemory((void *) p, size);
40
 
}
41
 
 
42
 
static PyObject *ptr_to_buffer(void *p, int size)
43
 
{
44
 
        return PyBuffer_FromReadWriteMemory(p, size);
45
 
}
46
 
 
47
 
static const void *buffer_to_ptr_const(PyObject *o)
48
 
{
49
 
        const void *p;
50
 
        Py_ssize_t len;
51
 
 
52
 
        if (PyObject_AsReadBuffer(o, &p, &len) == 0)
53
 
                return p;
54
 
 
55
 
        PyErr_SetString(PyExc_ValueError,"buffer object expected");
56
 
        return NULL;
57
 
}
58
 
 
59
 
static void *buffer_to_ptr(PyObject *o)
60
 
{
61
 
        void *p;
62
 
        Py_ssize_t len;
63
 
        
64
 
        if (PyObject_AsWriteBuffer(o, &p, &len) == 0)
65
 
                return p;
66
 
 
67
 
        PyErr_SetString(PyExc_ValueError,"buffer object expected");
68
 
        return NULL;
69
 
}
70
 
 
71
 
%}
72