bpo-1635741: _sqlite3 uses PyModule_AddObjectRef() (GH-23148)
This commit is contained in:
parent
7184218e18
commit
789359f47c
|
@ -43,12 +43,10 @@ pysqlite_microprotocols_init(PyObject *module)
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (PyModule_AddObject(module, "adapters", psyco_adapters) < 0) {
|
||||
int res = PyModule_AddObjectRef(module, "adapters", psyco_adapters);
|
||||
Py_DECREF(psyco_adapters);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -263,17 +263,17 @@ pysqlite_adapt_impl(PyObject *module, PyObject *obj, PyObject *proto,
|
|||
return pysqlite_microprotocols_adapt(obj, proto, alt);
|
||||
}
|
||||
|
||||
static void converters_init(PyObject* module)
|
||||
static int converters_init(PyObject* module)
|
||||
{
|
||||
_pysqlite_converters = PyDict_New();
|
||||
if (!_pysqlite_converters) {
|
||||
return;
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (PyModule_AddObject(module, "converters", _pysqlite_converters) < 0) {
|
||||
int res = PyModule_AddObjectRef(module, "converters", _pysqlite_converters);
|
||||
Py_DECREF(_pysqlite_converters);
|
||||
}
|
||||
return;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
static PyMethodDef module_methods[] = {
|
||||
|
@ -361,8 +361,9 @@ do { \
|
|||
if (!exc) { \
|
||||
goto error; \
|
||||
} \
|
||||
if (PyModule_AddObject(module, name, exc) < 0) { \
|
||||
int res = PyModule_AddObjectRef(module, name, exc); \
|
||||
Py_DECREF(exc); \
|
||||
if (res < 0) { \
|
||||
goto error; \
|
||||
} \
|
||||
} while (0)
|
||||
|
@ -416,9 +417,7 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
|
|||
non-ASCII data and bytestrings to be returned for ASCII data.
|
||||
Now OptimizedUnicode is an alias for str, so it has no
|
||||
effect. */
|
||||
Py_INCREF((PyObject*)&PyUnicode_Type);
|
||||
if (PyModule_AddObject(module, "OptimizedUnicode", (PyObject*)&PyUnicode_Type) < 0) {
|
||||
Py_DECREF((PyObject*)&PyUnicode_Type);
|
||||
if (PyModule_AddObjectRef(module, "OptimizedUnicode", (PyObject*)&PyUnicode_Type) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
|
@ -441,7 +440,9 @@ PyMODINIT_FUNC PyInit__sqlite3(void)
|
|||
}
|
||||
|
||||
/* initialize the default converters */
|
||||
converters_init(module);
|
||||
if (converters_init(module) < 0) {
|
||||
goto error;
|
||||
}
|
||||
|
||||
error:
|
||||
if (PyErr_Occurred())
|
||||
|
|
Loading…
Reference in New Issue