Skip to content

Commit 39b4d59

Browse files
author
Erlend Egeberg Aasland
authored
bpo-45634: Don't combine error checks when adding sqlite3 int constants (GH-29251)
1 parent 634984d commit 39b4d59

File tree

1 file changed

+48
-41
lines changed

1 file changed

+48
-41
lines changed

Modules/_sqlite/module.c

Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -348,49 +348,56 @@ pysqlite_error_name(int rc)
348348
return NULL;
349349
}
350350

351-
static int add_integer_constants(PyObject *module) {
352-
int ret = 0;
353-
354-
ret += PyModule_AddIntMacro(module, PARSE_DECLTYPES);
355-
ret += PyModule_AddIntMacro(module, PARSE_COLNAMES);
356-
ret += PyModule_AddIntMacro(module, SQLITE_DENY);
357-
ret += PyModule_AddIntMacro(module, SQLITE_IGNORE);
358-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_INDEX);
359-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TABLE);
360-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_INDEX);
361-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TABLE);
362-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_TRIGGER);
363-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TEMP_VIEW);
364-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_TRIGGER);
365-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VIEW);
366-
ret += PyModule_AddIntMacro(module, SQLITE_DELETE);
367-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_INDEX);
368-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TABLE);
369-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_INDEX);
370-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TABLE);
371-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_TRIGGER);
372-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TEMP_VIEW);
373-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_TRIGGER);
374-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_VIEW);
375-
ret += PyModule_AddIntMacro(module, SQLITE_INSERT);
376-
ret += PyModule_AddIntMacro(module, SQLITE_PRAGMA);
377-
ret += PyModule_AddIntMacro(module, SQLITE_READ);
378-
ret += PyModule_AddIntMacro(module, SQLITE_SELECT);
379-
ret += PyModule_AddIntMacro(module, SQLITE_TRANSACTION);
380-
ret += PyModule_AddIntMacro(module, SQLITE_UPDATE);
381-
ret += PyModule_AddIntMacro(module, SQLITE_ATTACH);
382-
ret += PyModule_AddIntMacro(module, SQLITE_DETACH);
383-
ret += PyModule_AddIntMacro(module, SQLITE_ALTER_TABLE);
384-
ret += PyModule_AddIntMacro(module, SQLITE_REINDEX);
385-
ret += PyModule_AddIntMacro(module, SQLITE_ANALYZE);
386-
ret += PyModule_AddIntMacro(module, SQLITE_CREATE_VTABLE);
387-
ret += PyModule_AddIntMacro(module, SQLITE_DROP_VTABLE);
388-
ret += PyModule_AddIntMacro(module, SQLITE_FUNCTION);
389-
ret += PyModule_AddIntMacro(module, SQLITE_SAVEPOINT);
351+
static int
352+
add_integer_constants(PyObject *module) {
353+
#define ADD_INT(ival) \
354+
do { \
355+
if (PyModule_AddIntConstant(module, #ival, ival) < 0) { \
356+
return -1; \
357+
} \
358+
} while (0); \
359+
360+
ADD_INT(PARSE_DECLTYPES);
361+
ADD_INT(PARSE_COLNAMES);
362+
ADD_INT(SQLITE_DENY);
363+
ADD_INT(SQLITE_IGNORE);
364+
ADD_INT(SQLITE_CREATE_INDEX);
365+
ADD_INT(SQLITE_CREATE_TABLE);
366+
ADD_INT(SQLITE_CREATE_TEMP_INDEX);
367+
ADD_INT(SQLITE_CREATE_TEMP_TABLE);
368+
ADD_INT(SQLITE_CREATE_TEMP_TRIGGER);
369+
ADD_INT(SQLITE_CREATE_TEMP_VIEW);
370+
ADD_INT(SQLITE_CREATE_TRIGGER);
371+
ADD_INT(SQLITE_CREATE_VIEW);
372+
ADD_INT(SQLITE_DELETE);
373+
ADD_INT(SQLITE_DROP_INDEX);
374+
ADD_INT(SQLITE_DROP_TABLE);
375+
ADD_INT(SQLITE_DROP_TEMP_INDEX);
376+
ADD_INT(SQLITE_DROP_TEMP_TABLE);
377+
ADD_INT(SQLITE_DROP_TEMP_TRIGGER);
378+
ADD_INT(SQLITE_DROP_TEMP_VIEW);
379+
ADD_INT(SQLITE_DROP_TRIGGER);
380+
ADD_INT(SQLITE_DROP_VIEW);
381+
ADD_INT(SQLITE_INSERT);
382+
ADD_INT(SQLITE_PRAGMA);
383+
ADD_INT(SQLITE_READ);
384+
ADD_INT(SQLITE_SELECT);
385+
ADD_INT(SQLITE_TRANSACTION);
386+
ADD_INT(SQLITE_UPDATE);
387+
ADD_INT(SQLITE_ATTACH);
388+
ADD_INT(SQLITE_DETACH);
389+
ADD_INT(SQLITE_ALTER_TABLE);
390+
ADD_INT(SQLITE_REINDEX);
391+
ADD_INT(SQLITE_ANALYZE);
392+
ADD_INT(SQLITE_CREATE_VTABLE);
393+
ADD_INT(SQLITE_DROP_VTABLE);
394+
ADD_INT(SQLITE_FUNCTION);
395+
ADD_INT(SQLITE_SAVEPOINT);
390396
#if SQLITE_VERSION_NUMBER >= 3008003
391-
ret += PyModule_AddIntMacro(module, SQLITE_RECURSIVE);
397+
ADD_INT(SQLITE_RECURSIVE);
392398
#endif
393-
return ret;
399+
#undef ADD_INT
400+
return 0;
394401
}
395402

396403
struct PyModuleDef _sqlite3module = {

0 commit comments

Comments
 (0)