@@ -203,39 +203,18 @@ def test_native_long_subtype_has_native_layout(self):
203203 Py_XDECREF(self->member);
204204 Py_TYPE(self)->tp_free((PyObject *)self);
205205 }
206-
207- static PyObject *set_member(PyObject *self, PyObject *value) {
208- NativeLongWithMemberObject *obj = (NativeLongWithMemberObject *)self;
209- Py_INCREF(value);
210- Py_XSETREF(obj->member, value);
211- Py_RETURN_NONE;
212- }
213-
214- static PyObject *get_member(PyObject *self, PyObject *Py_UNUSED(ignored)) {
215- NativeLongWithMemberObject *obj = (NativeLongWithMemberObject *)self;
216- if (obj->member == NULL) {
217- PyErr_SetString(PyExc_AttributeError, "member");
218- return NULL;
219- }
220- return Py_NewRef(obj->member);
221- }
222206 """ ,
223207 ready_code = "NativeLongWithMemberType.tp_new = PyLong_Type.tp_new;" ,
224208 tp_base = "&PyLong_Type" ,
225209 struct_base = "PyLongObject base;" ,
226210 cmembers = "PyObject *member;" ,
227211 tp_dealloc = "(destructor)NativeLongWithMember_dealloc" ,
228- tp_methods = '''
229- {"set_member", (PyCFunction)set_member, METH_O, NULL},
230- {"get_member", (PyCFunction)get_member, METH_NOARGS, NULL}
231- ''' ,
232- tp_members = '{"member", T_OBJECT_EX, offsetof(NativeLongWithMemberObject, member), READONLY, NULL}' ,
212+ tp_members = '{"member", T_OBJECT_EX, offsetof(NativeLongWithMemberObject, member), 0, NULL}' ,
233213 )
234214
235215 obj = NativeLongWithMember (10 )
236216 assert obj == 10
237- obj .set_member ("foo" )
238- assert obj .get_member () == "foo"
217+ obj .member = "foo"
239218 assert obj .member == "foo"
240219
241220 test_PyLong_AsLong = CPyExtFunction (
0 commit comments