[tracker/sam/fix-load: 2/2] 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: 2/2] libtracker-data: Fix crash when statement cache isn't initialized
- Date: Sun, 8 Mar 2020 15:22:26 +0000 (UTC)
commit ae46aaa12694eef39e09f19eac3e46068b6f7bcc
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 3dbfcc233..f085e7f8e 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -2618,7 +2618,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
@@ -2626,16 +2629,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]