Cell Objects
************

Obiekty "Cell" są używane do implementacji zmiennych, do których
odwołuje się wiele zakresów. Dla każdej takiej zmiennej tworzony jest
obiekt komórki do przechowywania wartości; zmienne lokalne każdej
ramki stosu, która odwołuje się do wartości, zawierają odniesienie do
komórek z zewnętrznych zakresów, które również używają tej zmiennej.
Gdy wartość jest dostępna, wartość zawarta w komórce jest używana
zamiast samego obiektu komórki. Odwoływanie się do obiektu komórki
wymaga wsparcia ze strony wygenerowanego kodu bajtowego; nie są one
automatycznie odwoływane, gdy uzyskuje się do nich dostęp. Obiekty
komórek prawdopodobnie nie będą przydatne w innych miejscach.

type PyCellObject

   The C structure used for cell objects.

PyTypeObject PyCell_Type

   The type object corresponding to cell objects.

int PyCell_Check(PyObject *ob)

   Return true if *ob* is a cell object; *ob* must not be "NULL".
   This function always succeeds.

PyObject *PyCell_New(PyObject *ob)
    *Wartość zwracana: nowa referencja.*

   Create and return a new cell object containing the value *ob*. The
   parameter may be "NULL".

PyObject *PyCell_Get(PyObject *cell)
    *Wartość zwracana: nowa referencja.*

   Return the contents of the cell *cell*.

PyObject *PyCell_GET(PyObject *cell)
    *Wartość zwracana: pożyczona referencja.*

   Return the contents of the cell *cell*, but without checking that
   *cell* is non-"NULL" and a cell object.

int PyCell_Set(PyObject *cell, PyObject *value)

   Set the contents of the cell object *cell* to *value*.  This
   releases the reference to any current content of the cell. *value*
   may be "NULL".  *cell* must be non-"NULL"; if it is not a cell
   object, "-1" will be returned.  On success, "0" will be returned.

void PyCell_SET(PyObject *cell, PyObject *value)

   Sets the value of the cell object *cell* to *value*.  No reference
   counts are adjusted, and no checks are made for safety; *cell* must
   be non-"NULL" and must be a cell object.
