diff options
author | James Henstridge <james@daa.com.au> | 2001-09-25 13:45:44 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-09-25 13:45:44 +0000 |
commit | 4455c96e8a5dde91ed6e522207a2219e46c6a367 (patch) | |
tree | ce86d4d80b9d2d5aa76128ce6685c112ab626786 | |
parent | 6a32ede12b0fcfe3b351fa065dc33a0917ddbee2 (diff) | |
download | pygobject-python22-branch.tar.gz |
getter for __dict__ on GObject wrappers. (PyGObject_Type): include getsetspython22-branch
2001-09-25 James Henstridge <james@daa.com.au>
* gobjectmodule.c (pygobject_get_dict): getter for __dict__ on
GObject wrappers.
(PyGObject_Type): include getsets list.
* codegen/codegen.py (write_getsets): change "struct getsets" to
PyGetSetDef to match recent changes in python.
-rw-r--r-- | gobject/gobjectmodule.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 070dcbc7..14fe42ee 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1472,6 +1472,23 @@ static PyMethodDef pygobject_methods[] = { { NULL, NULL, 0 } }; +static PyObject * +pygobject_get_dict(PyGObject *self, void *closure) +{ + if (self->inst_dict == NULL) { + self->inst_dict = PyDict_New(); + if (self->inst_dict == NULL) + return NULL; + } + Py_INCREF(self->inst_dict); + return self->inst_dict; +} + +static PyGetSetDef pygobject_getsets[] = { + { "__dict__", (getter)pygobject_get_dict, (setter)0 }, + { NULL, 0, 0 } +}; + static PyTypeObject PyGObject_Type = { PyObject_HEAD_INIT(NULL) 0, /* ob_size */ @@ -1505,13 +1522,13 @@ static PyTypeObject PyGObject_Type = { (iternextfunc)0, /* tp_iternext */ pygobject_methods, /* tp_methods */ 0, /* tp_members */ - 0, /* tp_getset */ + pygobject_getsets, /* tp_getset */ (PyTypeObject *)0, /* tp_base */ (PyObject *)0, /* tp_dict */ 0, /* tp_descr_get */ 0, /* tp_descr_set */ offsetof(PyGObject, inst_dict), /* tp_dictoffset */ - (initproc)pygobject_init, /* tp_init */ + (initproc)pygobject_init, /* tp_init */ PyType_GenericAlloc, /* tp_alloc */ PyType_GenericNew, /* tp_new */ object_gc_free, /* tp_free */ |