summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2001-09-25 13:45:44 +0000
committerJames Henstridge <jamesh@src.gnome.org>2001-09-25 13:45:44 +0000
commit4455c96e8a5dde91ed6e522207a2219e46c6a367 (patch)
treece86d4d80b9d2d5aa76128ce6685c112ab626786
parent6a32ede12b0fcfe3b351fa065dc33a0917ddbee2 (diff)
downloadpygobject-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.c21
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 */