diff options
author | Georg Brandl <georg@python.org> | 2006-03-18 07:59:59 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2006-03-18 07:59:59 (GMT) |
commit | abd1ff8f1f6f2840345756081837994fdefaa52b (patch) | |
tree | 298b063bb5505e62081b2267f4480d7728712481 | |
parent | 237037beb53822cacce21e20d624bb74977dadcb (diff) | |
download | cpython-abd1ff8f1f6f2840345756081837994fdefaa52b.zip cpython-abd1ff8f1f6f2840345756081837994fdefaa52b.tar.gz cpython-abd1ff8f1f6f2840345756081837994fdefaa52b.tar.bz2 |
Previously, Python code had no easy way to access the contents of a
cell object. Now, a ``cell_contents`` attribute has been added
(closes patch #1170323).
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Objects/cellobject.c | 19 |
2 files changed, 23 insertions, 0 deletions
@@ -12,6 +12,10 @@ What's New in Python 2.5 alpha 1? Core and builtins ----------------- +- Previously, Python code had no easy way to access the contents of a + cell object. Now, a ``cell_contents`` attribute has been added + (closes patch #1170323). + - Patch #1123430: Python's small-object allocator now returns an arena to the system ``free()`` when all memory within an arena becomes unused again. Prior to Python 2.5, arenas (256KB chunks of memory) were never diff --git a/Objects/cellobject.c b/Objects/cellobject.c index 3b87093..9704403 100644 --- a/Objects/cellobject.c +++ b/Objects/cellobject.c @@ -86,6 +86,18 @@ cell_clear(PyCellObject *op) return 0; } +static PyObject * +cell_get_contents(PyCellObject *op, void *closure) +{ + Py_XINCREF(op->ob_ref); + return op->ob_ref; +} + +static PyGetSetDef cell_getsetlist[] = { + {"cell_contents", (getter)cell_get_contents, NULL}, + {NULL} /* sentinel */ +}; + PyTypeObject PyCell_Type = { PyObject_HEAD_INIT(&PyType_Type) 0, @@ -111,4 +123,11 @@ PyTypeObject PyCell_Type = { 0, /* tp_doc */ (traverseproc)cell_traverse, /* tp_traverse */ (inquiry)cell_clear, /* tp_clear */ + 0, /* tp_richcompare */ + 0, /* tp_weaklistoffset */ + 0, /* tp_iter */ + 0, /* tp_iternext */ + 0, /* tp_methods */ + 0, /* tp_members */ + cell_getsetlist, /* tp_getset */ }; |