Skip to content

Commit ed91f95

Browse files
author
Erlend Egeberg Aasland
authored
[3.10] bpo-45634: Don't combine error checks when adding sqlite3 int constants (GH-29251). (GH-29343)
1 parent 3997f3c commit ed91f95

File tree

1 file changed

+50
-43
lines changed

1 file changed

+50
-43
lines changed

Modules/_sqlite/module.c

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -273,51 +273,58 @@ static PyMethodDef module_methods[] = {
273273
{NULL, NULL}
274274
};
275275

276-
static int add_integer_constants(PyObject *module) {
277-
int ret = 0;
278-
279-
ret += PyModule_AddIntMacro(module, PARSE_DECLTYPES);
280-
ret += PyModule_AddIntMacro(module, PARSE_COLNAMES);
281-
ret += PyModule_AddIntMacro(module, SQLITE_OK);
282-
ret += PyModule_AddIntMacro(module, SQLITE_DENY);
283-
ret += PyModule_AddIntMacro(module, SQLITE_IGNORE);
284-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_INDEX);
285-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TABLE);
286-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_INDEX);
287-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TABLE);
288-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TRIGGER);
289-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_VIEW);
290-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TRIGGER);
291-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VIEW);
292-
ret += PyModule_AddIntMacro(module, SQLITE_DELETE);
293-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_INDEX);
294-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TABLE);
295-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_INDEX);
296-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TABLE);
297-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TRIGGER);
298-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_VIEW);
299-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TRIGGER);
300-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_VIEW);
301-
ret += PyModule_AddIntMacro(module, SQLITE_INSERT);
302-
ret += PyModule_AddIntMacro(module, SQLITE_PRAGMA);
303-
ret += PyModule_AddIntMacro(module, SQLITE_READ);
304-
ret += PyModule_AddIntMacro(module, SQLITE_SELECT);
305-
ret += PyModule_AddIntMacro(module, SQLITE_TRANSACTION);
306-
ret += PyModule_AddIntMacro(module, SQLITE_UPDATE);
307-
ret += PyModule_AddIntMacro(module, SQLITE_ATTACH);
308-
ret += PyModule_AddIntMacro(module, SQLITE_DETACH);
309-
ret += PyModule_AddIntMacro(module, SQLITE_ALTER_TABLE);
310-
ret += PyModule_AddIntMacro(module, SQLITE_REINDEX);
311-
ret += PyModule_AddIntMacro(module, SQLITE_ANALYZE);
312-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VTABLE);
313-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_VTABLE);
314-
ret += PyModule_AddIntMacro(module, SQLITE_FUNCTION);
315-
ret += PyModule_AddIntMacro(module, SQLITE_SAVEPOINT);
276+
static int
277+
add_integer_constants(PyObject *module) {
278+
#define ADD_INT(ival) \
279+
do { \
280+
if (PyModule_AddIntConstant(module, #ival, ival) < 0) { \
281+
return -1; \
282+
} \
283+
} while (0); \
284+
285+
ADD_INT(PARSE_DECLTYPES);
286+
ADD_INT(PARSE_COLNAMES);
287+
ADD_INT(SQLITE_OK);
288+
ADD_INT(SQLITE_DENY);
289+
ADD_INT(SQLITE_IGNORE);
290+
ADD_INT(SQLITE_CREATE_INDEX);
291+
ADD_INT(SQLITE_CREATE_TABLE);
292+
ADD_INT(SQLITE_CREATE_TEMP_INDEX);
293+
ADD_INT(SQLITE_CREATE_TEMP_TABLE);
294+
ADD_INT(SQLITE_CREATE_TEMP_TRIGGER);
295+
ADD_INT(SQLITE_CREATE_TEMP_VIEW);
296+
ADD_INT(SQLITE_CREATE_TRIGGER);
297+
ADD_INT(SQLITE_CREATE_VIEW);
298+
ADD_INT(SQLITE_DELETE);
299+
ADD_INT(SQLITE_DROP_INDEX);
300+
ADD_INT(SQLITE_DROP_TABLE);
301+
ADD_INT(SQLITE_DROP_TEMP_INDEX);
302+
ADD_INT(SQLITE_DROP_TEMP_TABLE);
303+
ADD_INT(SQLITE_DROP_TEMP_TRIGGER);
304+
ADD_INT(SQLITE_DROP_TEMP_VIEW);
305+
ADD_INT(SQLITE_DROP_TRIGGER);
306+
ADD_INT(SQLITE_DROP_VIEW);
307+
ADD_INT(SQLITE_INSERT);
308+
ADD_INT(SQLITE_PRAGMA);
309+
ADD_INT(SQLITE_READ);
310+
ADD_INT(SQLITE_SELECT);
311+
ADD_INT(SQLITE_TRANSACTION);
312+
ADD_INT(SQLITE_UPDATE);
313+
ADD_INT(SQLITE_ATTACH);
314+
ADD_INT(SQLITE_DETACH);
315+
ADD_INT(SQLITE_ALTER_TABLE);
316+
ADD_INT(SQLITE_REINDEX);
317+
ADD_INT(SQLITE_ANALYZE);
318+
ADD_INT(SQLITE_CREATE_VTABLE);
319+
ADD_INT(SQLITE_DROP_VTABLE);
320+
ADD_INT(SQLITE_FUNCTION);
321+
ADD_INT(SQLITE_SAVEPOINT);
316322
#if SQLITE_VERSION_NUMBER >= 3008003
317-
ret += PyModule_AddIntMacro(module, SQLITE_RECURSIVE);
323+
ADD_INT(SQLITE_RECURSIVE);
318324
#endif
319-
ret += PyModule_AddIntMacro(module, SQLITE_DONE);
320-
return ret;
325+
ADD_INT(SQLITE_DONE);
326+
#undef ADD_INT
327+
return 0;
321328
}
322329

323330
static struct PyModuleDef _sqlite3module = {

0 commit comments

Comments
 (0)