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).
This commit is contained in:
Georg Brandl 2006-03-18 07:59:59 +00:00
parent 237037beb5
commit abd1ff8f1f
2 changed files with 23 additions and 0 deletions

View File

@ -12,6 +12,10 @@ What's New in Python 2.5 alpha 1?
Core and builtins 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 - Patch #1123430: Python's small-object allocator now returns an arena to
the system ``free()`` when all memory within an arena becomes unused the system ``free()`` when all memory within an arena becomes unused
again. Prior to Python 2.5, arenas (256KB chunks of memory) were never again. Prior to Python 2.5, arenas (256KB chunks of memory) were never

View File

@ -86,6 +86,18 @@ cell_clear(PyCellObject *op)
return 0; 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 = { PyTypeObject PyCell_Type = {
PyObject_HEAD_INIT(&PyType_Type) PyObject_HEAD_INIT(&PyType_Type)
0, 0,
@ -111,4 +123,11 @@ PyTypeObject PyCell_Type = {
0, /* tp_doc */ 0, /* tp_doc */
(traverseproc)cell_traverse, /* tp_traverse */ (traverseproc)cell_traverse, /* tp_traverse */
(inquiry)cell_clear, /* tp_clear */ (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 */
}; };