@@ -2163,24 +2163,8 @@ init_cbson(void)
2163
2163
PyObject * c_api_object ;
2164
2164
static void * _cbson_API [_cbson_API_POINTER_COUNT ];
2165
2165
2166
- #if PY_MAJOR_VERSION >= 3
2167
- m = PyModule_Create (& moduledef );
2168
- #else
2169
- m = Py_InitModule ("_cbson" , _CBSONMethods );
2170
- #endif
2171
- if (m == NULL ) {
2172
- INITERROR ;
2173
- }
2174
-
2175
2166
PyDateTime_IMPORT ;
2176
2167
if (PyDateTimeAPI == NULL ) {
2177
- Py_DECREF (m );
2178
- INITERROR ;
2179
- }
2180
-
2181
- /* Import several python objects */
2182
- if (_reload_python_objects (m )) {
2183
- Py_DECREF (m );
2184
2168
INITERROR ;
2185
2169
}
2186
2170
@@ -2196,10 +2180,36 @@ init_cbson(void)
2196
2180
#else
2197
2181
c_api_object = PyCObject_FromVoidPtr ((void * ) _cbson_API , NULL );
2198
2182
#endif
2183
+ if (c_api_object == NULL )
2184
+ INITERROR ;
2199
2185
2200
- if (c_api_object != NULL ) {
2201
- PyModule_AddObject (m , "_C_API" , c_api_object );
2186
+ #if PY_MAJOR_VERSION >= 3
2187
+ m = PyModule_Create (& moduledef );
2188
+ #else
2189
+ m = Py_InitModule ("_cbson" , _CBSONMethods );
2190
+ #endif
2191
+ if (m == NULL ) {
2192
+ Py_DECREF (c_api_object );
2193
+ INITERROR ;
2202
2194
}
2195
+
2196
+ /* Import several python objects */
2197
+ if (_reload_python_objects (m )) {
2198
+ Py_DECREF (c_api_object );
2199
+ #if PY_MAJOR_VERSION >= 3
2200
+ Py_DECREF (m );
2201
+ #endif
2202
+ INITERROR ;
2203
+ }
2204
+
2205
+ if (PyModule_AddObject (m , "_C_API" , c_api_object ) < 0 ) {
2206
+ Py_DECREF (c_api_object );
2207
+ #if PY_MAJOR_VERSION >= 3
2208
+ Py_DECREF (m );
2209
+ #endif
2210
+ INITERROR ;
2211
+ }
2212
+
2203
2213
#if PY_MAJOR_VERSION >= 3
2204
2214
return m ;
2205
2215
#endif
0 commit comments