diff --git a/src/database/config.c b/src/database/config.c index 60c59427d60ebee07a688a36882d9f37cfb6c279..c2802ffdc9ae32a7d2179d26c27013c3ebc11ab5 100644 --- a/src/database/config.c +++ b/src/database/config.c @@ -8,7 +8,7 @@ #include <string.h> bool -database_config_set(sqlite3 *db, const char *section, const char *key, const char *value) +database_config_set(volatile sqlite3 *db, const char *section, const char *key, const char *value) { static const char *SQL_STMT = "INSERT OR REPLACE INTO" @@ -26,7 +26,7 @@ database_config_set(sqlite3 *db, const char *section, const char *key, const cha code = sqlite3_step(stmt); if (code != SQLITE_OK && code != SQLITE_DONE) { - LOG_ERROR_SCT("DB", "Failed to insert or replace: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to insert or replace: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -37,7 +37,7 @@ error: } bool -database_config_get_text(sqlite3 *db, const char *section, const char *key, char *value, size_t len) +database_config_get_text(volatile sqlite3 *db, const char *section, const char *key, char *value, size_t len) { static const char *SQL_STMT = "SELECT value" @@ -62,7 +62,7 @@ error: } bool -database_config_exists(sqlite3 *db, const char *section, const char *key) +database_config_exists(volatile sqlite3 *db, const char *section, const char *key) { static const char *SQL_STMT = "SELECT value" @@ -83,7 +83,7 @@ error: } bool -database_config_get_int(sqlite3 *db, const char *section, const char *key, int *value) +database_config_get_int(volatile sqlite3 *db, const char *section, const char *key, int *value) { static const char *SQL_STMT = "SELECT CAST(value AS INTEGER)" @@ -106,7 +106,7 @@ error: } bool -database_config_queue(sqlite3 *db, const char *option, int value) +database_config_queue(volatile sqlite3 *db, const char *option, int value) { static const char *SQL_STMT_TMP = "UPDATE queue_state SET %s = ? WHERE id = 42;"; char SQL_STMT[LKT_MAX_SQLITE_STATEMENT]; @@ -136,7 +136,7 @@ error: } bool -database_config_queue_default(sqlite3 *db) +database_config_queue_default(volatile sqlite3 *db) { static const char *SQL_DEFAULT = "UPDATE queue_state SET" @@ -155,7 +155,7 @@ error: } bool -database_get_config(sqlite3 *db, const char *option, int *value) +database_get_config(volatile sqlite3 *db, const char *option, int *value) { static const char *SQL_STMT_TMP = "SELECT %s FROM queue_state WHERE id = 42;"; char SQL_STMT[LKT_MAX_SQLITE_STATEMENT]; diff --git a/src/database/find.c b/src/database/find.c index e801b631e548c0ed88c097fa3928b848e32cfbc7..ffc4b43706745737dbf21e8289763ac18fdae11c 100644 --- a/src/database/find.c +++ b/src/database/find.c @@ -8,7 +8,7 @@ #include <string.h> bool -database_search_database_init(sqlite3 *db, char *col_name, char *rgx, struct lkt_search *ret) +database_search_database_init(volatile sqlite3 *db, char *col_name, char *rgx, struct lkt_search *ret) { RETURN_UNLESS(ret, "Exit because return pointer is NULL", false); static const char *SQL_STMT_TEMPLATE = @@ -34,7 +34,7 @@ error: bool -database_search_queue_init(sqlite3 *db, char *col_name, char *rgx, struct lkt_search *ret) +database_search_queue_init(volatile sqlite3 *db, char *col_name, char *rgx, struct lkt_search *ret) { RETURN_UNLESS(ret, "Exit because return pointer is NULL", false); static const char *SQL_STMT_TEMPLATE = @@ -89,7 +89,7 @@ database_search_iter(struct lkt_search *item) } error: - LOG_ERROR_SCT("DB", "sqlite3_step failed: %s", sqlite3_errmsg(item->db)); + LOG_ERROR_SCT("DB", "sqlite3_step failed: %s", sqlite3_errmsg((sqlite3 *) item->db)); error_or_done: sqlite3_finalize(item->stmt); return false; diff --git a/src/database/open.c b/src/database/open.c index 61414c90395852fbf6838cd4428b46f8a7428688..dfc470ee46d78c0fdea3151cc90342f8621e0862 100644 --- a/src/database/open.c +++ b/src/database/open.c @@ -54,7 +54,7 @@ is_sql_str_invalid(const char *str) } bool -database_new(sqlite3 **db) +database_new(volatile sqlite3 **db) { static int flags = SQLITE_OPEN_READWRITE | /* Open in RW mode */ SQLITE_OPEN_SHAREDCACHE | /* hHared cache for databases */ @@ -63,7 +63,7 @@ database_new(sqlite3 **db) RETURN_IF(SQLITE_OK != sqlite3_enable_shared_cache(1), "Failed to enable shared cache", false); RETURN_IF(sqlite3_soft_heap_limit64(HEAP_LIMIT_SOFT) < 0, "Failed to set soft heap limit", false); RETURN_IF(sqlite3_hard_heap_limit64(HEAP_LIMIT_HARD) < 0, "Failed to set soft heap limit", false); - RETURN_IF(SQLITE_OK != sqlite3_open_v2(":memory:", db, flags, NULL), "Failed to open :memory:", false); + RETURN_IF(SQLITE_OK != sqlite3_open_v2(":memory:", (sqlite3 **) db, flags, NULL), "Failed to open :memory:", false); SQLITE_EXEC(*db, SQL_MEM_SCHEM, err_not_init); return true; err_not_init: @@ -72,7 +72,7 @@ err_not_init: } static inline bool -__attach(sqlite3 *db, const char *name, const char *path) +__attach(volatile sqlite3 *db, const char *name, const char *path) { static const char SQL_ATTACH_TEMPLATE[] = "ATTACH '%s' AS '%s';"; char SQL_ATTACH[LKT_MAX_SQLITE_STATEMENT]; @@ -88,7 +88,7 @@ err_no_attach: } static inline bool -__detach(sqlite3 *db, const char *name) +__detach(volatile sqlite3 *db, const char *name) { static const char SQL_DETACH_TEMPLATE[] = "DETACH '%s';\n"; char SQL_DETACH[LKT_MAX_SQLITE_STATEMENT]; @@ -104,7 +104,7 @@ err_no_detach: } static inline bool -__is_attached(sqlite3 *db, const char *name) +__is_attached(volatile sqlite3 *db, const char *name) { static const char *SQL_STMT = "SELECT name FROM pragma_database_list WHERE name = ?;\n"; sqlite3_stmt *stmt = 0; @@ -120,7 +120,7 @@ error: } bool -database_open(sqlite3 *db, const char *dbpath) +database_open(volatile sqlite3 *db, const char *dbpath) { if (is_sql_str_invalid(dbpath)) { LOG_ERROR("The database path '%s' is invalid", dbpath); @@ -130,7 +130,7 @@ database_open(sqlite3 *db, const char *dbpath) } bool -database_attach(sqlite3 *db, const char *name, const char *dbpath) +database_attach(volatile sqlite3 *db, const char *name, const char *dbpath) { RETURN_UNLESS(strcasecmp(PROTECTED_DATABASE, name), " The database "PROTECTED_DATABASE " is protected, can't attach a database with the same name", false); @@ -155,7 +155,7 @@ database_attach(sqlite3 *db, const char *name, const char *dbpath) } bool -database_detach(sqlite3 *db, const char *name) +database_detach(volatile sqlite3 *db, const char *name) { RETURN_UNLESS(strcasecmp(PROTECTED_DATABASE, name), " The database "PROTECTED_DATABASE " is protected, can't detach it", false); diff --git a/src/database/playlist.c b/src/database/playlist.c index 086f580bd911e19526e4bb4ad3b248e918995323..0dbb4ac59036762122a1fa11bf38f90e1b430624 100644 --- a/src/database/playlist.c +++ b/src/database/playlist.c @@ -11,7 +11,7 @@ extern int is_sql_str_invalid(const char *str); bool -database_plt_create(sqlite3 *db, const char *name) +database_plt_create(volatile sqlite3 *db, const char *name) { static const char *SQL_STMT = "INSERT INTO playlist (name, last_update) VALUES (?, strftime('%s', 'now'));"; @@ -27,7 +27,7 @@ error: } bool -database_plt_remove(sqlite3 *db, const char *name) +database_plt_remove(volatile sqlite3 *db, const char *name) { static const char *SQL_STMT = "DELETE FROM playlist WHERE name = ?;"; sqlite3_stmt *stmt = NULL; @@ -42,7 +42,7 @@ error: } bool -database_plt_remove_pos(sqlite3 *db, const char *name, int pos) +database_plt_remove_pos(volatile sqlite3 *db, const char *name, int pos) { static const char *SQL_STMT = "DELETE FROM kara_playlist " @@ -60,7 +60,7 @@ error: } bool -database_plt_clear(sqlite3 *db, const char *name) +database_plt_clear(volatile sqlite3 *db, const char *name) { static const char *SQL_STMT = "DELETE FROM kara_playlist WHERE playlist_id = (SELECT id FROM playlist WHERE name = ?);"; @@ -76,7 +76,7 @@ error: } bool -database_plt_rename(sqlite3 *db, const char *old_name, const char *new_name) +database_plt_rename(volatile sqlite3 *db, const char *old_name, const char *new_name) { static const char *SQL_STMT = "UPDATE playlist SET name = ? WHERE name = ?;"; sqlite3_stmt *stmt = NULL; @@ -92,7 +92,7 @@ error: } bool -database_plt_export(sqlite3 *db, const char *name) +database_plt_export(volatile sqlite3 *db, const char *name) { static const char *SQL_SCHEM = "CREATE TABLE IF NOT EXISTS %s.content" @@ -115,7 +115,7 @@ database_plt_export(sqlite3 *db, const char *name) code = sqlite3_step(stmt); if (code != SQLITE_DONE && code != SQLITE_OK) { - LOG_ERROR_SCT("DB", "Failed to create schema: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to create schema: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -126,7 +126,7 @@ error: } bool -database_plt_import(sqlite3 *db, const char *name) +database_plt_import(volatile sqlite3 *db, const char *name) { static const char *SQL_SCHEM = "INSERT OR IGNORE INTO kara_playlist (kara_id, playlist_id)" @@ -151,7 +151,7 @@ error: } bool -database_plt_add_uri(sqlite3 *db, const char *name, struct lkt_uri *uri) +database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri) { static const char *SQL = "WITH plt_id(id) AS (SELECT playlist.id AS id FROM playlist WHERE name COLLATE nocase = ?) " diff --git a/src/database/queue.c b/src/database/queue.c index 341455f016c363839f23ba996643ef70a84ef045..7adbac37caf29a97d7c426ef2ca4af91bf2c7cc2 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -11,7 +11,7 @@ extern int is_sql_str_invalid(const char *); bool -database_queue_state(sqlite3 *db, struct lkt_queue_state *res) +database_queue_state(volatile sqlite3 *db, struct lkt_queue_state *res) { static const char *SQL_STMT = "SELECT" @@ -49,7 +49,7 @@ error: } bool -database_queue_current_kara(sqlite3 *db, struct kara_metadata *res, int *id) +database_queue_current_kara(volatile sqlite3 *db, struct kara_metadata *res, int *id) { static const char *SQL_STMT = "SELECT song_name, source_name, category, language, author_name, song_type, song_number, kara_id" @@ -66,12 +66,12 @@ database_queue_current_kara(sqlite3 *db, struct kara_metadata *res, int *id) Most of the time it won't be NULL. */ if (!res) goto no_metadata; - strncpy(res->song_name, (const char *) sqlite3_column_text(stmt, 0), LEKTOR_TAG_MAX - 1); + strncpy(res->song_name, (const char *) sqlite3_column_text(stmt, 0), LEKTOR_TAG_MAX - 1); strncpy(res->source_name, (const char *) sqlite3_column_text(stmt, 1), LEKTOR_TAG_MAX - 1); - strncpy(res->category, (const char *) sqlite3_column_text(stmt, 2), LEKTOR_TAG_MAX - 1); - strncpy(res->language, (const char *) sqlite3_column_text(stmt, 3), LEKTOR_TAG_MAX - 1); + strncpy(res->category, (const char *) sqlite3_column_text(stmt, 2), LEKTOR_TAG_MAX - 1); + strncpy(res->language, (const char *) sqlite3_column_text(stmt, 3), LEKTOR_TAG_MAX - 1); strncpy(res->author_name, (const char *) sqlite3_column_text(stmt, 4), LEKTOR_TAG_MAX - 1); - strncpy(res->song_type, (const char *) sqlite3_column_text(stmt, 5), LEKTOR_TAG_MAX - 1); + strncpy(res->song_type, (const char *) sqlite3_column_text(stmt, 5), LEKTOR_TAG_MAX - 1); res->song_number = sqlite3_column_int(stmt, 6); no_metadata: /* Most of the time this will be NULL. */ @@ -85,7 +85,7 @@ error: } static bool -queue_add_with_col_like_str(sqlite3 *db, const char *col, const char *val, int priority) +queue_add_with_col_like_str(volatile sqlite3 *db, const char *col, const char *val, int priority) { RETURN_IF(is_sql_str_invalid(col), "Column name is invalid", false); @@ -112,7 +112,7 @@ error: } static bool -queue_insert_with_col_like_str(sqlite3 *db, const char *col, const char *val, int pos) +queue_insert_with_col_like_str(volatile sqlite3 *db, const char *col, const char *val, int pos) { RETURN_IF(is_sql_str_invalid(col), "Column name is invalid", false); @@ -156,7 +156,7 @@ error: } bool -database_queue_insert_query(sqlite3 *db, const char *query, int pos) +database_queue_insert_query(volatile sqlite3 *db, const char *query, int pos) { bool status = queue_insert_with_col_like_str(db, LKT_DATABASE_KARA_ALL, query, pos); LOG_INFO("%s '%s' at %d", status ? "Successfull add query" : "Failed add query", query, pos); @@ -164,7 +164,7 @@ database_queue_insert_query(sqlite3 *db, const char *query, int pos) } bool -database_queue_add_plt(sqlite3 *db, const char *plt_name, int priority) +database_queue_add_plt(volatile sqlite3 *db, const char *plt_name, int priority) { static const char *SQL_STMT = "INSERT INTO queue (kara_id, priority) " @@ -187,7 +187,7 @@ error: } bool -database_queue_add_query(sqlite3 *db, const char *query, int priority) +database_queue_add_query(volatile sqlite3 *db, const char *query, int priority) { bool status = queue_add_with_col_like_str(db, LKT_DATABASE_KARA_ALL, query, priority); LOG_INFO("%s '%s' with prio %d", status ? "Successfull add query" : "Failed add query", query, priority); @@ -195,7 +195,7 @@ database_queue_add_query(sqlite3 *db, const char *query, int priority) } bool -database_queue_add_author(sqlite3 *db, const char *author, int priority) +database_queue_add_author(volatile sqlite3 *db, const char *author, int priority) { bool status = queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KAUTHOR, author, priority); LOG_INFO("%s '%s'", status ? "Successfull add author" : "Failed add author", author); @@ -203,7 +203,7 @@ database_queue_add_author(sqlite3 *db, const char *author, int priority) } bool -database_queue_add_language(sqlite3 *db, const char *language, int priority) +database_queue_add_language(volatile sqlite3 *db, const char *language, int priority) { bool status = queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KLANG, language, priority); LOG_INFO("%s '%s'", status ? "Successfull add language" : "Failed add language", language); @@ -211,7 +211,7 @@ database_queue_add_language(sqlite3 *db, const char *language, int priority) } bool -database_queue_add_category(sqlite3 *db, const char *cat, int priority) +database_queue_add_category(volatile sqlite3 *db, const char *cat, int priority) { bool status = queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KCAT, cat, priority); LOG_INFO("%s '%s'", status ? "Successfull add category" : "Failed add category", cat); @@ -219,7 +219,7 @@ database_queue_add_category(sqlite3 *db, const char *cat, int priority) } bool -database_queue_add_type(sqlite3 *db, const char *type, int priority) +database_queue_add_type(volatile sqlite3 *db, const char *type, int priority) { bool status = queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KTYPE, type, priority); LOG_INFO("%s '%s'", status ? "Successfull add type" : "Failed add type", type); @@ -227,7 +227,7 @@ database_queue_add_type(sqlite3 *db, const char *type, int priority) } bool -database_queue_add_id(sqlite3 *db, int id, int priority) +database_queue_add_id(volatile sqlite3 *db, int id, int priority) { static const char *SQL_STMT = "INSERT INTO queue (kara_id, priority) VALUES (?,?);"; bool status = false; @@ -243,7 +243,7 @@ error: } bool -database_queue_del_id(sqlite3 *db, int id) +database_queue_del_id(volatile sqlite3 *db, int id) { static const char *SQL_TEMPLATE = "BEGIN TRANSACTION;" @@ -264,7 +264,7 @@ error: } bool -database_queue_next(sqlite3 *db, char filepath[PATH_MAX]) +database_queue_next(volatile sqlite3 *db, char filepath[PATH_MAX]) { static const char *SQL_STMT = "SELECT file_path, position, RANDOM()" @@ -305,7 +305,7 @@ database_queue_next(sqlite3 *db, char filepath[PATH_MAX]) } else { - LOG_ERROR_SCT("DB", "Failed to fetch next kara: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to fetch next kara: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -317,7 +317,7 @@ error: } bool -database_queue_toggle_pause(sqlite3 *db) +database_queue_toggle_pause(volatile sqlite3 *db) { static const char *SQL_STMT = "UPDATE queue_state SET paused = 1 - paused"; SQLITE_EXEC(db, SQL_STMT, error); @@ -327,7 +327,7 @@ error: } bool -database_queue_prev(sqlite3 *db, char filepath[PATH_MAX]) +database_queue_prev(volatile sqlite3 *db, char filepath[PATH_MAX]) { static const char *SQL_STMT = "SELECT file_path, position " @@ -365,7 +365,7 @@ database_queue_prev(sqlite3 *db, char filepath[PATH_MAX]) } else { - LOG_ERROR_SCT("DB", "Failed to fetch prev kara: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to fetch prev kara: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -377,7 +377,7 @@ error: } bool -database_queue_clear(sqlite3 *db) +database_queue_clear(volatile sqlite3 *db) { static const char *SQL_STMT = "BEGIN TRANSACTION;" @@ -392,7 +392,7 @@ error: } bool -database_queue_crop(sqlite3 *db) +database_queue_crop(volatile sqlite3 *db) { static const char *SQL_STMT = "DELETE FROM queue WHERE queue.kara_id <> (SELECT current FROM queue_state LIMIT 1);"; @@ -403,7 +403,7 @@ error: } bool -database_queue_move(sqlite3 *db, int from, int to) +database_queue_move(volatile sqlite3 *db, int from, int to) { /* stmt arguments in order: * 1. to @@ -438,7 +438,7 @@ error: } bool -database_queue_play(sqlite3 *db, int pos) +database_queue_play(volatile sqlite3 *db, int pos) { static const char *SQL_STMT = "UPDATE queue_state SET current = ?, paused = 0" @@ -453,7 +453,7 @@ database_queue_play(sqlite3 *db, int pos) code = sqlite3_step(stmt); if (code != SQLITE_OK && code != SQLITE_DONE) { - LOG_ERROR_SCT("DB", "Failed to update queue_state: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to update queue_state: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -463,7 +463,7 @@ error: } bool -database_queue_stop(sqlite3 *db) +database_queue_stop(volatile sqlite3 *db) { static const char *SQL_STMT = "UPDATE queue_state SET current = NULL;"; SQLITE_EXEC(db, SQL_STMT, error); @@ -473,7 +473,7 @@ error: } bool -database_queue_set_current_index(sqlite3 *db, int idx) +database_queue_set_current_index(volatile sqlite3 *db, int idx) { static const char *SQL_GET_TEMPLATE = "UPDATE queue_state SET current = %d;"; char SQL_GET[LKT_MAX_SQLITE_STATEMENT]; @@ -493,7 +493,7 @@ error: } bool -database_queue_get_current_file(sqlite3 *db, char filepath[PATH_MAX]) +database_queue_get_current_file(volatile sqlite3 *db, char filepath[PATH_MAX]) { static const char *SQL_STMT = "SELECT file_path" @@ -514,7 +514,7 @@ database_queue_get_current_file(sqlite3 *db, char filepath[PATH_MAX]) strncpy(filepath, (const char *) sqlite3_column_text(stmt, 0), PATH_MAX); else { - LOG_ERROR_SCT("DB", "Failed to fetch prev kara: %s", sqlite3_errmsg(db)); + LOG_ERROR_SCT("DB", "Failed to fetch prev kara: %s", sqlite3_errmsg((sqlite3 *) db)); goto error; } @@ -525,7 +525,7 @@ error: } bool -database_queue_set_paused(sqlite3 *db, bool paused) +database_queue_set_paused(volatile sqlite3 *db, bool paused) { const char *SQL = paused ? "UPDATE queue_state SET paused = 1;" : "UPDATE queue_state SET paused = 0;"; SQLITE_EXEC(db, SQL, error); @@ -535,7 +535,7 @@ error: } bool -database_queue_shuffle(sqlite3 *db) +database_queue_shuffle(volatile sqlite3 *db) { const char *SQL = "BEGIN TRANSACTION;" @@ -591,7 +591,7 @@ error: } bool -database_queue_list(sqlite3 *db, size_t from, size_t to, struct lkt_callback *callback) +database_queue_list(volatile sqlite3 *db, size_t from, size_t to, struct lkt_callback *callback) { const char *SQL_STMT = "WITH content AS (" @@ -640,7 +640,7 @@ error: } bool -database_queue_seekid(sqlite3 *db, int id, int *out_pos) +database_queue_seekid(volatile sqlite3 *db, int id, int *out_pos) { static const char *SQL_STMT = "SELECT position FROM queue_ WHERE kara_id = ? LIMIT 1"; int ret; diff --git a/src/database/stickers.c b/src/database/stickers.c index 1b4c023b00baf88ff10bbe0f93e4a7fd1332c435..e2fc96ee246307692c49f3f56c9c3f4c4c522ce3 100644 --- a/src/database/stickers.c +++ b/src/database/stickers.c @@ -8,7 +8,7 @@ #include <stdio.h> bool -database_sticker_create(sqlite3 *db, const char *name) +database_sticker_create(volatile sqlite3 *db, const char *name) { static const char *INSERT = "WITH id_max (id) AS (SELECT MAX(id) FROM 'stickers')" @@ -30,7 +30,7 @@ error: } bool -database_sticker_delete(sqlite3 *db, const char *name) +database_sticker_delete(volatile sqlite3 *db, const char *name) { static const char *INSERT = "DELETE FROM 'stickers' WHERE name = ?;"; sqlite3_stmt *stmt; @@ -46,7 +46,7 @@ error: } bool -database_sticker_list(sqlite3 *db, const char *type, struct sticker_callback *call) +database_sticker_list(volatile sqlite3 *db, const char *type, struct sticker_callback *call) { const char *SQL = NULL; int ret = false, uri, value; @@ -106,7 +106,7 @@ error: } bool -database_sticker_set(sqlite3 *db, const char *type, const char *name, int uri, int value) +database_sticker_set(volatile sqlite3 *db, const char *type, const char *name, int uri, int value) { const char *SQL = NULL; sqlite3_stmt *stmt; @@ -147,7 +147,7 @@ error: } bool -database_sticker_get(sqlite3 *db, const char *type, const char *name, int uri, struct sticker_callback *call) +database_sticker_get(volatile sqlite3 *db, const char *type, const char *name, int uri, struct sticker_callback *call) { const char *SQL = NULL; sqlite3_stmt *stmt; @@ -199,7 +199,7 @@ error: } bool -database_sticker_delete_specify(sqlite3 *db, const char *type, int uri, const char *name) +database_sticker_delete_specify(volatile sqlite3 *db, const char *type, int uri, const char *name) { char SQL[LKT_MAX_SQLITE_STATEMENT]; sqlite3_stmt *stmt; diff --git a/src/database/user.c b/src/database/user.c index 11936d7492527e567ad371ad362987e18f093161..ab347f401611a764df89a91429c9ecd3cca6ba7b 100644 --- a/src/database/user.c +++ b/src/database/user.c @@ -5,7 +5,7 @@ #include <stdio.h> bool -database_user_authentificate(sqlite3 *db, const char *password) +database_user_authentificate(volatile sqlite3 *db, const char *password) { static const char *SQL_STMT = "SELECT username FROM users WHERE password = ?"; sqlite3_stmt *stmt = 0; @@ -21,7 +21,7 @@ error: } bool -database_user_add(sqlite3 *db, const char *username, const char *password) +database_user_add(volatile sqlite3 *db, const char *username, const char *password) { static const char *SQL_STMT = "INSERT INTO users (username, password) VALUES (?, ?)"; sqlite3_stmt *stmt = 0; diff --git a/src/main/lktadm.c b/src/main/lktadm.c index 352d21ed5ecb5a572a712216dec9d5b13264bc3f..84a2de4a56232a28e5539cbbafdbd489ba5ac3ee 100644 --- a/src/main/lktadm.c +++ b/src/main/lktadm.c @@ -41,7 +41,7 @@ static char kara_dir[PATH_MAX], db_path[PATH_MAX], mkvpropedit[PATH_MAX], sqlite void open_db(void) { - if (!database_new(&db)) + if (!database_new((volatile sqlite3 **) &db)) fail("Failed to init memory db"); if (config_open(db)) diff --git a/src/net/listen.c b/src/net/listen.c index 690c1844c6111d77864a47a7a01d5fd648c59a14..372b307a9d8d7d9d0be5b26638f7878296ed6451 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -702,26 +702,26 @@ lkt_listen(void) memset(&srv, 0, sizeof(struct lkt_state)); /* Initialize the system. */ - RETURN_UNLESS(database_new((sqlite3 **) &srv.db), "Failed to initialize the memory database", 1); + RETURN_UNLESS(database_new(&srv.db), "Failed to initialize the memory database", 1); RETURN_IF(config_detect_file(conf_file, PATH_MAX), "Failed to find a config file", 1); - RETURN_IF(config_new((sqlite3 *) srv.db, conf_file), "Failed to read configuration file", 1); + RETURN_IF(config_new(srv.db, conf_file), "Failed to read configuration file", 1); /* Finish to initialize. */ - RETURN_UNLESS(database_config_get_text((sqlite3 *) srv.db, "database", "db_path", db_path, PATH_MAX), "Cfg error", 2); - RETURN_UNLESS(database_open((sqlite3 *) srv.db, db_path), "Can't open database", 1); + RETURN_UNLESS(database_config_get_text(srv.db, "database", "db_path", db_path, PATH_MAX), "Cfg error", 2); + RETURN_UNLESS(database_open(srv.db, db_path), "Can't open database", 1); /* Read the configuration. */ - RETURN_UNLESS(database_config_get_int( (sqlite3 *) srv.db, "player", "autoclear", &autoclear), "Cfg error", 2); - RETURN_UNLESS(database_config_get_text((sqlite3 *) srv.db, "database", "kara_dir", kara_dir, PATH_MAX), "Cfg error", 2); - RETURN_UNLESS(database_config_get_text((sqlite3 *) srv.db, "server", "host", host, HOST_NAME_MAX), "Cfg error", 2); - RETURN_UNLESS(database_config_get_text((sqlite3 *) srv.db, "server", "port", port, 5), "Cfg error", 2); - RETURN_UNLESS(database_config_get_text((sqlite3 *) srv.db, "player", "module", player_mod, INI_MAX_LINE), "Cfg error", 2); + RETURN_UNLESS(database_config_get_int (srv.db, "player", "autoclear", &autoclear), "Cfg error", 2); + RETURN_UNLESS(database_config_get_text(srv.db, "database", "kara_dir", kara_dir, PATH_MAX), "Cfg error", 2); + RETURN_UNLESS(database_config_get_text(srv.db, "server", "host", host, HOST_NAME_MAX), "Cfg error", 2); + RETURN_UNLESS(database_config_get_text(srv.db, "server", "port", port, 5), "Cfg error", 2); + RETURN_UNLESS(database_config_get_text(srv.db, "player", "module", player_mod, INI_MAX_LINE), "Cfg error", 2); if (kara_dir[strlen(kara_dir) - 1] != '/') strncat(kara_dir, "/", PATH_MAX - 1); srv.kara_prefix = kara_dir; - database_config_queue_default((sqlite3 *) srv.db); + database_config_queue_default(srv.db); srv.fds_max = 16; srv.fds = calloc(srv.fds_max, sizeof(struct pollfd)); @@ -735,9 +735,9 @@ lkt_listen(void) srv.fds_len = 1; if (autoclear) - database_queue_clear((sqlite3 *) srv.db); + database_queue_clear(srv.db); - RETURN_UNLESS(load_module_by_name((sqlite3 *) srv.db, player_mod, &srv.win), "Can't load module", 3); + RETURN_UNLESS(load_module_by_name(srv.db, player_mod, &srv.win), "Can't load module", 3); RETURN_UNLESS(srv.win.new(&srv.win), "Can't create window", 3); srv.win.attach(&srv.win, &srv); RETURN_IF(repo_new(&srv.repo, "kurisu", "https://kurisu.iiens.net", srv.db), "Failed to create repo", 4); @@ -747,7 +747,7 @@ lkt_listen(void) break; if (handle_idle_events(&srv) < 0) break; - srv.win.handle_events(&srv.win, (sqlite3 *) srv.db, (enum mpd_idle_flag *) &srv.mpd_idle_events); + srv.win.handle_events(&srv.win, srv.db, &srv.mpd_idle_events); } srv.win.free(&srv.win);