|
2 | 2 | #include "frozendictobject.h" |
3 | 3 | static int frozendict_next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue); |
4 | 4 | static PyObject* frozendict_iter(PyDictObject *dict); |
5 | | -PyTypeObject PyFrozenDictIterItem_Type; |
6 | 5 | static int frozendict_equal(PyDictObject* a, PyDictObject* b); |
7 | 6 | #include "other.c" |
8 | 7 | #include "dictobject.c" |
@@ -173,17 +172,17 @@ static int frozendict_setitem(PyObject *op, |
173 | 172 | return frozendict_insert((PyDictObject*) op, key, hash, value, empty); |
174 | 173 | } |
175 | 174 |
|
176 | | -int _PyFrozendict_SetItem(PyObject *op, |
177 | | - PyObject *key, |
178 | | - PyObject *value, |
179 | | - int empty) { |
180 | | - if (! PyAnyFrozenDict_Check(op)) { |
181 | | - PyErr_BadInternalCall(); |
182 | | - return -1; |
183 | | - } |
| 175 | +// int _PyFrozendict_SetItem(PyObject *op, |
| 176 | +// PyObject *key, |
| 177 | +// PyObject *value, |
| 178 | +// int empty) { |
| 179 | +// if (! PyAnyFrozenDict_Check(op)) { |
| 180 | +// PyErr_BadInternalCall(); |
| 181 | +// return -1; |
| 182 | +// } |
184 | 183 |
|
185 | | - return frozendict_setitem(op, key, value, empty); |
186 | | -} |
| 184 | +// return frozendict_setitem(op, key, value, empty); |
| 185 | +// } |
187 | 186 |
|
188 | 187 | /* Internal version of frozendict_next that returns a hash value in addition |
189 | 188 | * to the key and value. |
@@ -1237,7 +1236,7 @@ COOLD_CLASS_NAME "(iterable) -> returns an immutable dictionary, equivalent to:\ |
1237 | 1236 | COOLD_CLASS_NAME "(**kwargs) -> returns an immutable dictionary initialized with the name=value pairs\n" |
1238 | 1237 | " in the keyword argument list. For example: " COOLD_CLASS_NAME "(one=1, two=2)"); |
1239 | 1238 |
|
1240 | | -PyTypeObject PyFrozenDict_Type = { |
| 1239 | +static PyTypeObject PyFrozenDict_Type = { |
1241 | 1240 | PyVarObject_HEAD_INIT(NULL, 0) |
1242 | 1241 | "frozendict." FROZENDICT_CLASS_NAME, /* tp_name */ |
1243 | 1242 | sizeof(PyFrozenDictObject), /* tp_basicsize */ |
@@ -1280,7 +1279,7 @@ PyTypeObject PyFrozenDict_Type = { |
1280 | 1279 | PyObject_GC_Del, /* tp_free */ |
1281 | 1280 | }; |
1282 | 1281 |
|
1283 | | -PyTypeObject PyCoold_Type = { |
| 1282 | +static PyTypeObject PyCoold_Type = { |
1284 | 1283 | PyVarObject_HEAD_INIT(NULL, 0) |
1285 | 1284 | "frozendict." COOLD_CLASS_NAME, /* tp_name */ |
1286 | 1285 | sizeof(PyFrozenDictObject), /* tp_basicsize */ |
@@ -1348,10 +1347,10 @@ static PyObject* frozendictiter_iternextkey(dictiterobject* di) { |
1348 | 1347 | return key; |
1349 | 1348 | } |
1350 | 1349 |
|
1351 | | -PyTypeObject PyFrozenDictIterKey_Type = { |
1352 | | - PyVarObject_HEAD_INIT(&PyType_Type, 0) |
1353 | | - "frozendict_keyiterator", /* tp_name */ |
1354 | | - sizeof(dictiterobject), /* tp_basicsize */ |
| 1350 | +static PyTypeObject PyFrozenDictIterKey_Type = { |
| 1351 | + PyVarObject_HEAD_INIT(NULL, 0) |
| 1352 | + "frozendict.keyiterator", /* tp_name */ |
| 1353 | + sizeof(dictiterobject), /* tp_basicsize */ |
1355 | 1354 | 0, /* tp_itemsize */ |
1356 | 1355 | /* methods */ |
1357 | 1356 | (destructor)dictiter_dealloc, /* tp_dealloc */ |
@@ -1400,9 +1399,9 @@ static PyObject* frozendictiter_iternextvalue(dictiterobject* di) { |
1400 | 1399 | return val; |
1401 | 1400 | } |
1402 | 1401 |
|
1403 | | -PyTypeObject PyFrozenDictIterValue_Type = { |
| 1402 | +static PyTypeObject PyFrozenDictIterValue_Type = { |
1404 | 1403 | PyVarObject_HEAD_INIT(NULL, 0) |
1405 | | - "frozendict_valueiterator", /* tp_name */ |
| 1404 | + "frozendict.valueiterator", /* tp_name */ |
1406 | 1405 | sizeof(dictiterobject), /* tp_basicsize */ |
1407 | 1406 | 0, /* tp_itemsize */ |
1408 | 1407 | /* methods */ |
@@ -1477,9 +1476,9 @@ static PyObject* frozendictiter_iternextitem(dictiterobject* di) { |
1477 | 1476 | return result; |
1478 | 1477 | } |
1479 | 1478 |
|
1480 | | -PyTypeObject PyFrozenDictIterItem_Type = { |
| 1479 | +static PyTypeObject PyFrozenDictIterItem_Type = { |
1481 | 1480 | PyVarObject_HEAD_INIT(NULL, 0) |
1482 | | - "frozendict_itemiterator", /* tp_name */ |
| 1481 | + "frozendict.itemiterator", /* tp_name */ |
1483 | 1482 | sizeof(dictiterobject), /* tp_basicsize */ |
1484 | 1483 | 0, /* tp_itemsize */ |
1485 | 1484 | /* methods */ |
@@ -1521,9 +1520,9 @@ frozendictkeys_iter(_PyDictViewObject *dv) |
1521 | 1520 | return dictiter_new(dv->dv_dict, &PyFrozenDictIterKey_Type); |
1522 | 1521 | } |
1523 | 1522 |
|
1524 | | -PyTypeObject PyFrozenDictKeys_Type = { |
| 1523 | +static PyTypeObject PyFrozenDictKeys_Type = { |
1525 | 1524 | PyVarObject_HEAD_INIT(NULL, 0) |
1526 | | - "frozendict_keys", /* tp_name */ |
| 1525 | + "frozendict.keys", /* tp_name */ |
1527 | 1526 | sizeof(_PyDictViewObject), /* tp_basicsize */ |
1528 | 1527 | 0, /* tp_itemsize */ |
1529 | 1528 | /* methods */ |
@@ -1571,9 +1570,9 @@ frozendictitems_iter(_PyDictViewObject *dv) |
1571 | 1570 | return dictiter_new(dv->dv_dict, &PyFrozenDictIterItem_Type); |
1572 | 1571 | } |
1573 | 1572 |
|
1574 | | -PyTypeObject PyFrozenDictItems_Type = { |
| 1573 | +static PyTypeObject PyFrozenDictItems_Type = { |
1575 | 1574 | PyVarObject_HEAD_INIT(NULL, 0) |
1576 | | - "frozendict_items", /* tp_name */ |
| 1575 | + "frozendict.items", /* tp_name */ |
1577 | 1576 | sizeof(_PyDictViewObject), /* tp_basicsize */ |
1578 | 1577 | 0, /* tp_itemsize */ |
1579 | 1578 | /* methods */ |
@@ -1621,9 +1620,9 @@ frozendictvalues_iter(_PyDictViewObject *dv) |
1621 | 1620 | return dictiter_new(dv->dv_dict, &PyFrozenDictIterValue_Type); |
1622 | 1621 | } |
1623 | 1622 |
|
1624 | | -PyTypeObject PyFrozenDictValues_Type = { |
| 1623 | +static PyTypeObject PyFrozenDictValues_Type = { |
1625 | 1624 | PyVarObject_HEAD_INIT(NULL, 0) |
1626 | | - "frozendict_values", /* tp_name */ |
| 1625 | + "frozendict.values", /* tp_name */ |
1627 | 1626 | sizeof(_PyDictViewObject), /* tp_basicsize */ |
1628 | 1627 | 0, /* tp_itemsize */ |
1629 | 1628 | /* methods */ |
@@ -1665,11 +1664,49 @@ frozendict_exec(PyObject *m) |
1665 | 1664 | { |
1666 | 1665 | /* Finalize the type object including setting type of the new type |
1667 | 1666 | * object; doing it here is required for portability, too. */ |
1668 | | - if (PyType_Ready(&PyFrozenDict_Type) < 0) |
| 1667 | + if (PyType_Ready(&PyFrozenDict_Type) < 0) { |
1669 | 1668 | goto fail; |
| 1669 | + } |
1670 | 1670 |
|
1671 | | - if (PyType_Ready(&PyCoold_Type) < 0) |
| 1671 | + if (PyType_Ready(&PyCoold_Type) < 0) { |
| 1672 | + goto fail; |
| 1673 | + } |
| 1674 | + |
| 1675 | + if (PyType_Ready(&PyFrozenDictIterKey_Type) < 0) { |
| 1676 | + goto fail; |
| 1677 | + } |
| 1678 | + |
| 1679 | + if (PyType_Ready(&PyFrozenDictIterValue_Type) < 0) { |
| 1680 | + goto fail; |
| 1681 | + } |
| 1682 | + |
| 1683 | + if (PyType_Ready(&PyFrozenDictIterItem_Type) < 0) { |
| 1684 | + goto fail; |
| 1685 | + } |
| 1686 | + |
| 1687 | + if (PyType_Ready(&PyFrozenDictKeys_Type) < 0) { |
1672 | 1688 | goto fail; |
| 1689 | + } |
| 1690 | + |
| 1691 | + if (PyType_Ready(&PyFrozenDictItems_Type) < 0) { |
| 1692 | + goto fail; |
| 1693 | + } |
| 1694 | + |
| 1695 | + if (PyType_Ready(&PyFrozenDictValues_Type) < 0) { |
| 1696 | + goto fail; |
| 1697 | + } |
| 1698 | + |
| 1699 | + if (PyType_Ready(&PyDictRevIterKey_Type) < 0) { |
| 1700 | + goto fail; |
| 1701 | + } |
| 1702 | + |
| 1703 | + if (PyType_Ready(&PyDictRevIterItem_Type) < 0) { |
| 1704 | + goto fail; |
| 1705 | + } |
| 1706 | + |
| 1707 | + if (PyType_Ready(&PyDictRevIterValue_Type) < 0) { |
| 1708 | + goto fail; |
| 1709 | + } |
1673 | 1710 |
|
1674 | 1711 | PyModule_AddObject(m, "frozendict", (PyObject *)&PyFrozenDict_Type); |
1675 | 1712 | PyModule_AddObject(m, "coold", (PyObject *)&PyCoold_Type); |
|
0 commit comments