From fd3038f1b33ca85b15228e3ca84b6e4689dab304 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Tue, 12 Apr 2022 23:03:37 +0200 Subject: [PATCH] FIX: Fix cache process => don't use the cache to build the cache... --- inc/lektor/database.h | 1 + src/database/cache.c | 4 ++-- src/database/queue.c | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/inc/lektor/database.h b/inc/lektor/database.h index f1578152..1b193ee1 100644 --- a/inc/lektor/database.h +++ b/inc/lektor/database.h @@ -67,6 +67,7 @@ bool database_queue_get_current_file (lkt_db *db, char filepath[PATH_MAX]); bool database_get_kara_id (lkt_db *db, char filepath[PATH_MAX], int *id); bool database_get_kara_path (lkt_db *db, int id, char filepath[PATH_MAX]); +bool database_get_kara_path_no_cache(lkt_db *db, int id, char filepath[PATH_MAX]); bool database_get_kara_position (lkt_db *db, int id, int *pos); bool database_get_kara_mtime_id (lkt_db *db, int id, uint64_t *mtime); bool database_get_kara_duration_id (lkt_db *db, int id, uint64_t *duration); diff --git a/src/database/cache.c b/src/database/cache.c index 18deada8..d7c033b8 100644 --- a/src/database/cache.c +++ b/src/database/cache.c @@ -60,7 +60,7 @@ database_cache_kara_magic(lkt_db *db, int id) /* Get the filepath */ char filename[PATH_MAX]; memset(filename, 0, sizeof(filename)); - database_get_kara_path(db, id, filename); + database_get_kara_path_no_cache(db, id, filename); if (filename[0] == 0) { LOG_ERROR("CACHE", "Failed to get filename for kara %ld", id); return; @@ -152,7 +152,7 @@ database_cache_kara(lkt_db *db, int id) { char filepath[PATH_MAX]; - if (!database_get_kara_path(db, id, filepath)) { + if (!database_get_kara_path_no_cache(db, id, filepath)) { LOG_ERROR("CACHE", "Failed to get a path for kara %d, don't update cache", id); return; } diff --git a/src/database/queue.c b/src/database/queue.c index b8f5007d..9f3f56d1 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -900,6 +900,24 @@ error: return status; } +bool +database_get_kara_path_no_cache(lkt_db *db, int id, char filepath[PATH_MAX]) +{ + bool ret_code = false; + sqlite3_stmt *stmt = NULL; + static const char *SQL = "SELECT file_path FROM kara WHERE id = ?;"; + RETURN_UNLESS(id && db, "Invalid argument", false); + SQLITE_PREPARE(db, stmt, SQL, error); + SQLITE_BIND_INT(db, stmt, 1, id, error); + SQLITE_STEP_ROW(db, stmt, error); + if (filepath != NULL) + safe_strncpy(filepath, sqlite3_column_chars(stmt, 0), PATH_MAX); + ret_code = true; +error: + sqlite3_finalize(stmt); + return ret_code; +} + bool database_get_kara_path(lkt_db *db, int id, char filepath[PATH_MAX]) { -- GitLab