SQLite. Многочисленные «переполнение доступа», «арифметическое превышение», «утечка ресурсов» в sqlite3.c в C++Builder 6 CodeGuard

У меня есть проект Borland C++Builder 6.0. В этом проекте я использую библиотеку SQLite. Я использую файл sqlite3.c (объединение SQLite 3.7.11). Все работает нормально. Но когда я включаю CodeGuard в C++Builder, CodeGuard выдает множество ошибок в sqlite3.c. Например, «переполнение доступа», «арифметическое превышение», «утечка ресурсов».

Я попытался вставить 100000 записей в свою базу данных в проекте. На это ушло около 130 секунд, а используемая процессом память совсем не увеличилась. Так что я думаю, что утечки памяти на самом деле нет.

Мой вопрос: следует ли серьезно относиться к ошибкам CodeGuard в sqlite? Или я могу просто игнорировать их? Может они ложные срабатывания? Или компилятор C++Builder 6 не подходит для SQlite?


person CITBL    schedule 23.05.2012    source источник


Ответы (2)


SQLite — действительно надежный код. BCB 6 — очень старый компилятор.

Я бы предположил, что код SQLite в порядке, но компилятор либо генерирует плохой код, либо ложные срабатывания в CodeGuard.

person Gregor Brandt    schedule 26.05.2012

Я избавился от этих предупреждений путем компиляции с определенной опцией SQLITE_WIN32_MALLOC, которая настраивает SQLite для использования собственного API кучи Win32 вместо malloc().

person Javier    schedule 15.01.2014