forked from qt-creator/qt-creator
Sqlite: Use a more efficient update hook
Change-Id: Ic6df1f4ba6b914c7751faf7cf89083fa50a92793 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -400,22 +400,11 @@ void DatabaseBackend::walCheckpointFull()
|
||||
}
|
||||
}
|
||||
|
||||
namespace {
|
||||
void updateCallback(
|
||||
void *callback, int type, char const *database, char const *table, sqlite3_int64 row)
|
||||
void DatabaseBackend::setUpdateHook(
|
||||
void *object,
|
||||
void (*callback)(void *object, int, char const *database, char const *, long long rowId))
|
||||
{
|
||||
auto &function = *reinterpret_cast<DatabaseBackend::UpdateCallback *>(callback);
|
||||
|
||||
function(static_cast<ChangeType>(type), database, table, row);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
void DatabaseBackend::setUpdateHook(UpdateCallback &callback)
|
||||
{
|
||||
if (callback)
|
||||
sqlite3_update_hook(m_databaseHandle, updateCallback, &callback);
|
||||
else
|
||||
sqlite3_update_hook(m_databaseHandle, nullptr, nullptr);
|
||||
sqlite3_update_hook(m_databaseHandle, callback, object);
|
||||
}
|
||||
|
||||
void DatabaseBackend::resetUpdateHook()
|
||||
|
||||
Reference in New Issue
Block a user