|
1 | 1 | #include <Python.h> |
2 | 2 | #include <structmember.h> |
3 | 3 |
|
| 4 | +#include "_multilib/capsule.h" |
4 | 5 | #include "_multilib/dict.h" |
5 | 6 | #include "_multilib/hashtable.h" |
6 | 7 | #include "_multilib/istr.h" |
|
10 | 11 | #include "_multilib/state.h" |
11 | 12 | #include "_multilib/views.h" |
12 | 13 |
|
13 | | -#define MultiDict_CheckExact(state, obj) Py_IS_TYPE(obj, state->MultiDictType) |
14 | | -#define MultiDict_Check(state, obj) \ |
15 | | - (MultiDict_CheckExact(state, obj) || \ |
16 | | - PyObject_TypeCheck(obj, state->MultiDictType)) |
17 | | -#define CIMultiDict_CheckExact(state, obj) \ |
18 | | - Py_IS_TYPE(obj, state->CIMultiDictType) |
19 | | -#define CIMultiDict_Check(state, obj) \ |
20 | | - (CIMultiDict_CheckExact(state, obj) || \ |
21 | | - PyObject_TypeCheck(obj, state->CIMultiDictType)) |
22 | | -#define AnyMultiDict_Check(state, obj) \ |
23 | | - (MultiDict_CheckExact(state, obj) || \ |
24 | | - CIMultiDict_CheckExact(state, obj) || \ |
25 | | - PyObject_TypeCheck(obj, state->MultiDictType)) |
26 | | -#define MultiDictProxy_CheckExact(state, obj) \ |
27 | | - Py_IS_TYPE(obj, state->MultiDictProxyType) |
28 | | -#define MultiDictProxy_Check(state, obj) \ |
29 | | - (MultiDictProxy_CheckExact(state, obj) || \ |
30 | | - PyObject_TypeCheck(obj, state->MultiDictProxyType)) |
31 | | -#define CIMultiDictProxy_CheckExact(state, obj) \ |
32 | | - Py_IS_TYPE(obj, state->CIMultiDictProxyType) |
33 | | -#define CIMultiDictProxy_Check(state, obj) \ |
34 | | - (CIMultiDictProxy_CheckExact(state, obj) || \ |
35 | | - PyObject_TypeCheck(obj, state->CIMultiDictProxyType)) |
36 | | -#define AnyMultiDictProxy_Check(state, obj) \ |
37 | | - (MultiDictProxy_CheckExact(state, obj) || \ |
38 | | - CIMultiDictProxy_CheckExact(state, obj) || \ |
39 | | - PyObject_TypeCheck(obj, state->MultiDictProxyType)) |
40 | | - |
41 | 14 | /******************** Internal Methods ********************/ |
42 | 15 |
|
43 | 16 | static inline PyObject * |
@@ -1520,6 +1493,15 @@ module_exec(PyObject *mod) |
1520 | 1493 | goto fail; |
1521 | 1494 | } |
1522 | 1495 |
|
| 1496 | + PyObject *capsule = new_capsule(state); |
| 1497 | + if (capsule == NULL) { |
| 1498 | + goto fail; |
| 1499 | + } |
| 1500 | + |
| 1501 | + if (PyModule_Add(mod, MultiDict_CAPI_NAME, capsule) < 0) { |
| 1502 | + goto fail; |
| 1503 | + } |
| 1504 | + |
1523 | 1505 | return 0; |
1524 | 1506 | fail: |
1525 | 1507 | Py_CLEAR(tpl); |
|
0 commit comments