[tracker/sam/fix-load: 4/5] libtracker-data: Fix crash when statement cache isn't initialized
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/sam/fix-load: 4/5] libtracker-data: Fix crash when statement cache isn't initialized
- Date: Mon, 9 Mar 2020 22:16:48 +0000 (UTC)
commit bf58849973ac20c908beadb5a195eb3d7ede750a
Author: Sam Thursfield <sam afuera me uk>
Date: Sun Mar 8 16:21:46 2020 +0100
libtracker-data: Fix crash when statement cache isn't initialized
This was causing LOAD updates to fail.
src/libtracker-data/tracker-db-interface-sqlite.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index b57c3a8b3..5342e2f0c 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2608,7 +2608,10 @@ tracker_db_interface_lru_insert_unchecked (TrackerDBInterface *db_inter
* `- [n-p] <- [n-p] <--------' *
* */
- if (stmt_lru->size >= stmt_lru->max) {
+ if (stmt_lru->size == 0) {
+ stmt_lru->head = stmt;
+ stmt_lru->tail = stmt;
+ } else if (stmt_lru->size >= stmt_lru->max) {
TrackerDBStatement *new_head;
/* We reached max-size of the LRU stmt cache. Destroy current
@@ -2616,16 +2619,12 @@ tracker_db_interface_lru_insert_unchecked (TrackerDBInterface *db_inter
* that we take out the current head, and close the ring.
* Then we assign head->next as new head.
*/
+ g_printerr("stmt_lru size: %i, max: %i, head: %p\n", stmt_lru->size, stmt_lru->max,
stmt_lru->head);
new_head = stmt_lru->head->next;
g_hash_table_remove (db_interface->dynamic_statements,
(gpointer) sqlite3_sql (stmt_lru->head->stmt));
stmt_lru->size--;
stmt_lru->head = new_head;
- } else {
- if (stmt_lru->size == 0) {
- stmt_lru->head = stmt;
- stmt_lru->tail = stmt;
- }
}
/* Set the current stmt (which is always new here) as the new tail
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]