diff --git a/src/database/queue.c b/src/database/queue.c index 3559d3f2f2d4dd3435ba306eb78951b6a57d698c..0ddba99071590b562f67472b12064b933cec9c50 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -293,7 +293,8 @@ database_queue_del_id(volatile sqlite3 *db, int id) { static const char *SQL_TEMPLATE = "BEGIN TRANSACTION;" - "CREATE TEMPORARY TABLE queue_tmp (position INTEGER, kara_id INTEGER, priority INTEGER);" + "CREATE TEMPORARY TABLE IF NOT EXISTS queue_tmp (position INTEGER, kara_id INTEGER, priority INTEGER);" + "DELETE FROM queue_tmp;" /* Move the current 'pointer' */ "UPDATE queue_state SET current = (SELECT NULLIF(COUNT(position), 0) FROM queue JOIN queue_state ON position <= current AND kara_id != %d);" "DELETE FROM queue WHERE kara_id = %d;" /* Delete any kara with the specified id */ @@ -301,7 +302,6 @@ database_queue_del_id(volatile sqlite3 *db, int id) "DELETE FROM queue;" "INSERT INTO queue(priority, position, kara_id) SELECT priority, ROW_NUMBER() OVER(ORDER BY position ASC), kara_id FROM queue_tmp;" "UPDATE sqlite_sequence SET seq = (SELECT COUNT(*) FROM queue) WHERE name = 'queue';" /* Update the sqlite_sequence */ - "DROP TABLE queue_tmp;" /* Erase queue_tmp */ "COMMIT;"; char SQL[LKT_MAX_SQLITE_STATEMENT]; safe_snprintf(SQL, LKT_MAX_SQLITE_STATEMENT, SQL_TEMPLATE, id, id); diff --git a/src/main/server.c b/src/main/server.c index 5a5d969dd6487941697b4b29b4fe2d8c582ed7fc..ba5f5febcfb84429c6a16d5179d129b8f8fe8c23 100644 --- a/src/main/server.c +++ b/src/main/server.c @@ -49,8 +49,6 @@ __garbage_collect(void) free(kara_dir); if (conf_file) free(conf_file); - if (srv.win.free) - srv.win.free(&srv.win); LOG_INFO_SCT("GARBAGE", "%s", "Cleaning a bit with global variables"); }