Skip to content

Commit aa8f4df

Browse files
author
Marco Sulla
committed
aligned 3.7 and 3.6
1 parent 96c5404 commit aa8f4df

File tree

3 files changed

+76
-51
lines changed

3 files changed

+76
-51
lines changed

frozendict/src/3_6/Include/frozendictobject.h

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ extern "C" {
55
#endif
66

77
// PyAPI_DATA(PyTypeObject) PyFrozenDict_Type;
8-
PyTypeObject PyFrozenDict_Type;
8+
static PyTypeObject PyFrozenDict_Type;
99
// PyAPI_DATA(PyTypeObject) PyCoold_Type;
10-
PyTypeObject PyCoold_Type;
10+
static PyTypeObject PyCoold_Type;
11+
1112
#define PyFrozenDict_Check(op) \
1213
( \
1314
Py_IS_TYPE(op, &PyFrozenDict_Type) \
@@ -46,18 +47,18 @@ PyTypeObject PyCoold_Type;
4647
)
4748

4849
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterKey_Type;
49-
PyTypeObject PyFrozenDictIterKey_Type;
50+
static PyTypeObject PyFrozenDictIterKey_Type;
5051
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterValues_Type;
51-
PyTypeObject PyFrozenDictIterValues_Type;
52-
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterItems_Type;
53-
PyTypeObject PyFrozenDictIterItems_Type;
52+
static PyTypeObject PyFrozenDictIterValue_Type;
53+
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterItem_Type;
54+
static PyTypeObject PyFrozenDictIterItem_Type;
5455

5556
// PyAPI_DATA(PyTypeObject) PyFrozenDictKeys_Type;
56-
PyTypeObject PyFrozenDictKeys_Type;
57+
static PyTypeObject PyFrozenDictKeys_Type;
5758
// PyAPI_DATA(PyTypeObject) PyFrozenDictValues_Type;
58-
PyTypeObject PyFrozenDictValues_Type;
59+
static PyTypeObject PyFrozenDictValues_Type;
5960
// PyAPI_DATA(PyTypeObject) PyFrozenDictItems_Type;
60-
PyTypeObject PyFrozenDictItems_Type;
61+
static PyTypeObject PyFrozenDictItems_Type;
6162

6263
#define PyAnyDictKeys_Check(op) (PyDictKeys_Check(op) || PyObject_TypeCheck(op, &PyFrozenDictKeys_Type))
6364
#define PyAnyDictValues_Check(op) (PyDictValues_Check(op) || PyObject_TypeCheck(op, &PyFrozenDictValues_Type))
@@ -66,11 +67,6 @@ PyTypeObject PyFrozenDictItems_Type;
6667
# define PyAnyDictViewSet_Check(op) \
6768
(PyAnyDictKeys_Check(op) || PyAnyDictItems_Check(op))
6869

69-
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterKey_Type;
70-
PyTypeObject PyFrozenDictIterKey_Type;
71-
// PyAPI_DATA(PyTypeObject) PyFrozenDictIterItem_Type;
72-
PyTypeObject PyFrozenDictIterItem_Type;
73-
7470
#ifndef Py_LIMITED_API
7571
# define Py_CPYTHON_FROZENDICTOBJECT_H
7672
# include "cpython/frozendictobject.h"

frozendict/src/3_6/cpython_src/other.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@ unsigned int _Py_bit_length(unsigned long d) {
1313
return d_bits;
1414
}
1515

16-
/*
17-
#define _Py_AS_GC(o) ((PyGC_Head *)(o)-1)
18-
19-
#define _PyObject_GC_MAY_BE_TRACKED(obj) \
20-
(PyObject_IS_GC(obj) && \
21-
(!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj)))
22-
*/
23-
2416
#define Py_IS_TYPE(op, type) (Py_TYPE(op) == type)
2517

2618
#define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type)

frozendict/src/3_6/frozendictobject.c

Lines changed: 66 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#include "frozendictobject.h"
33
static int frozendict_next(PyObject *op, Py_ssize_t *ppos, PyObject **pkey, PyObject **pvalue);
44
static PyObject* frozendict_iter(PyDictObject *dict);
5-
PyTypeObject PyFrozenDictIterItem_Type;
65
static int frozendict_equal(PyDictObject* a, PyDictObject* b);
76
#include "other.c"
87
#include "dictobject.c"
@@ -173,17 +172,17 @@ static int frozendict_setitem(PyObject *op,
173172
return frozendict_insert((PyDictObject*) op, key, hash, value, empty);
174173
}
175174

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+
// }
184183

185-
return frozendict_setitem(op, key, value, empty);
186-
}
184+
// return frozendict_setitem(op, key, value, empty);
185+
// }
187186

188187
/* Internal version of frozendict_next that returns a hash value in addition
189188
* to the key and value.
@@ -1237,7 +1236,7 @@ COOLD_CLASS_NAME "(iterable) -> returns an immutable dictionary, equivalent to:\
12371236
COOLD_CLASS_NAME "(**kwargs) -> returns an immutable dictionary initialized with the name=value pairs\n"
12381237
" in the keyword argument list. For example: " COOLD_CLASS_NAME "(one=1, two=2)");
12391238

1240-
PyTypeObject PyFrozenDict_Type = {
1239+
static PyTypeObject PyFrozenDict_Type = {
12411240
PyVarObject_HEAD_INIT(NULL, 0)
12421241
"frozendict." FROZENDICT_CLASS_NAME, /* tp_name */
12431242
sizeof(PyFrozenDictObject), /* tp_basicsize */
@@ -1280,7 +1279,7 @@ PyTypeObject PyFrozenDict_Type = {
12801279
PyObject_GC_Del, /* tp_free */
12811280
};
12821281

1283-
PyTypeObject PyCoold_Type = {
1282+
static PyTypeObject PyCoold_Type = {
12841283
PyVarObject_HEAD_INIT(NULL, 0)
12851284
"frozendict." COOLD_CLASS_NAME, /* tp_name */
12861285
sizeof(PyFrozenDictObject), /* tp_basicsize */
@@ -1348,10 +1347,10 @@ static PyObject* frozendictiter_iternextkey(dictiterobject* di) {
13481347
return key;
13491348
}
13501349

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 */
13551354
0, /* tp_itemsize */
13561355
/* methods */
13571356
(destructor)dictiter_dealloc, /* tp_dealloc */
@@ -1400,9 +1399,9 @@ static PyObject* frozendictiter_iternextvalue(dictiterobject* di) {
14001399
return val;
14011400
}
14021401

1403-
PyTypeObject PyFrozenDictIterValue_Type = {
1402+
static PyTypeObject PyFrozenDictIterValue_Type = {
14041403
PyVarObject_HEAD_INIT(NULL, 0)
1405-
"frozendict_valueiterator", /* tp_name */
1404+
"frozendict.valueiterator", /* tp_name */
14061405
sizeof(dictiterobject), /* tp_basicsize */
14071406
0, /* tp_itemsize */
14081407
/* methods */
@@ -1477,9 +1476,9 @@ static PyObject* frozendictiter_iternextitem(dictiterobject* di) {
14771476
return result;
14781477
}
14791478

1480-
PyTypeObject PyFrozenDictIterItem_Type = {
1479+
static PyTypeObject PyFrozenDictIterItem_Type = {
14811480
PyVarObject_HEAD_INIT(NULL, 0)
1482-
"frozendict_itemiterator", /* tp_name */
1481+
"frozendict.itemiterator", /* tp_name */
14831482
sizeof(dictiterobject), /* tp_basicsize */
14841483
0, /* tp_itemsize */
14851484
/* methods */
@@ -1521,9 +1520,9 @@ frozendictkeys_iter(_PyDictViewObject *dv)
15211520
return dictiter_new(dv->dv_dict, &PyFrozenDictIterKey_Type);
15221521
}
15231522

1524-
PyTypeObject PyFrozenDictKeys_Type = {
1523+
static PyTypeObject PyFrozenDictKeys_Type = {
15251524
PyVarObject_HEAD_INIT(NULL, 0)
1526-
"frozendict_keys", /* tp_name */
1525+
"frozendict.keys", /* tp_name */
15271526
sizeof(_PyDictViewObject), /* tp_basicsize */
15281527
0, /* tp_itemsize */
15291528
/* methods */
@@ -1571,9 +1570,9 @@ frozendictitems_iter(_PyDictViewObject *dv)
15711570
return dictiter_new(dv->dv_dict, &PyFrozenDictIterItem_Type);
15721571
}
15731572

1574-
PyTypeObject PyFrozenDictItems_Type = {
1573+
static PyTypeObject PyFrozenDictItems_Type = {
15751574
PyVarObject_HEAD_INIT(NULL, 0)
1576-
"frozendict_items", /* tp_name */
1575+
"frozendict.items", /* tp_name */
15771576
sizeof(_PyDictViewObject), /* tp_basicsize */
15781577
0, /* tp_itemsize */
15791578
/* methods */
@@ -1621,9 +1620,9 @@ frozendictvalues_iter(_PyDictViewObject *dv)
16211620
return dictiter_new(dv->dv_dict, &PyFrozenDictIterValue_Type);
16221621
}
16231622

1624-
PyTypeObject PyFrozenDictValues_Type = {
1623+
static PyTypeObject PyFrozenDictValues_Type = {
16251624
PyVarObject_HEAD_INIT(NULL, 0)
1626-
"frozendict_values", /* tp_name */
1625+
"frozendict.values", /* tp_name */
16271626
sizeof(_PyDictViewObject), /* tp_basicsize */
16281627
0, /* tp_itemsize */
16291628
/* methods */
@@ -1665,11 +1664,49 @@ frozendict_exec(PyObject *m)
16651664
{
16661665
/* Finalize the type object including setting type of the new type
16671666
* object; doing it here is required for portability, too. */
1668-
if (PyType_Ready(&PyFrozenDict_Type) < 0)
1667+
if (PyType_Ready(&PyFrozenDict_Type) < 0) {
16691668
goto fail;
1669+
}
16701670

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) {
16721688
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+
}
16731710

16741711
PyModule_AddObject(m, "frozendict", (PyObject *)&PyFrozenDict_Type);
16751712
PyModule_AddObject(m, "coold", (PyObject *)&PyCoold_Type);

0 commit comments

Comments
 (0)