|
| 1 | + |
1 | 2 | /* Code to access structure members by accessing attributes */ |
2 | 3 |
|
3 | 4 | #include "structmember.h" |
|
6 | 7 |
|
7 | 8 | static struct memberlist $abbrev$_memberlist[] = { |
8 | 9 | /* XXXX Add lines like { "foo", T_INT, OFF(foo), RO } */ |
| 10 | + |
9 | 11 | {NULL} /* Sentinel */ |
10 | 12 | }; |
11 | 13 |
|
12 | | -static object * |
| 14 | +static PyObject * |
13 | 15 | $abbrev$_getattr(self, name) |
14 | 16 | $abbrev$object *self; |
15 | 17 | char *name; |
16 | 18 | { |
17 | | - object *rv; |
| 19 | + PyObject *rv; |
18 | 20 |
|
19 | 21 | /* XXXX Add your own getattr code here */ |
20 | | - rv = getmember((char *)/*XXXX*/0, $abbrev$_memberlist, name); |
| 22 | + rv = PyMember_Get((char *)/*XXXX*/0, $abbrev$_memberlist, name); |
21 | 23 | if (rv) |
22 | 24 | return rv; |
23 | | - err_clear(); |
24 | | - return findmethod($abbrev$_methods, (object *)self, name); |
| 25 | + PyErr_Clear(); |
| 26 | + return Py_FindMethod($abbrev$_methods, (PyObject *)self, name); |
25 | 27 | } |
26 | 28 |
|
27 | 29 |
|
28 | 30 | static int |
29 | 31 | $abbrev$_setattr(self, name, v) |
30 | 32 | $abbrev$object *self; |
31 | 33 | char *name; |
32 | | - object *v; |
| 34 | + PyObject *v; |
33 | 35 | { |
34 | 36 | /* XXXX Add your own setattr code here */ |
35 | 37 | if ( v == NULL ) { |
36 | | - err_setstr(AttributeError, "Cannot delete attribute"); |
| 38 | + PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute"); |
37 | 39 | return -1; |
38 | 40 | } |
39 | | - return setmember((char *)/*XXXX*/0, $abbrev$_memberlist, name, v); |
| 41 | + return PyMember_Set((char *)/*XXXX*/0, $abbrev$_memberlist, name, v); |
40 | 42 | } |
41 | | - |
|
0 commit comments