diff --git a/inc/lektor/uri.h b/inc/lektor/uri.h index b9ab50874ab07d438ef3a30bc666c337a9f41348..c24f82ef38b92034bdc84f80e7bcb340fef0cba8 100644 --- a/inc/lektor/uri.h +++ b/inc/lektor/uri.h @@ -17,7 +17,11 @@ enum lkt_uri_type { struct lkt_uri { enum lkt_uri_type type; - void *value; + union { + void *value; + size_t id; + }; + bool _allocated; }; diff --git a/src/commands.c b/src/commands.c index 824fe657dff3d081df12f623371bfcc2d5e25a22..5a84e9a1d617199ac4415e7aa74641eb20742faf 100644 --- a/src/commands.c +++ b/src/commands.c @@ -268,13 +268,11 @@ command_addid(volatile sqlite3 *db, struct lkt_win *win, char *args[LKT_MESSAGE_ { UNUSED(win); RETURN_UNLESS(args, "Invalid argument", false); - long id; char *endptr = NULL, err = 0; struct lkt_uri uri = { .type = uri_id }; *watch_mask_ptr |= MPD_IDLE_PLAYLIST; - STRTOL(id, args[0], endptr, err); + STRTOL(uri.id, args[0], endptr, err); RETURN_IF(err, "STRTOL failed", false); - uri.value = (void *) (size_t) id; return database_queue_add_uri(db, &uri, 1); } @@ -283,13 +281,11 @@ command_multiaddid(volatile sqlite3 *db, struct lkt_win *win, char *args[LKT_MES { UNUSED(win); RETURN_UNLESS(args, "Invalid argument", false); - long id; char *endptr = NULL, err = 0; struct lkt_uri uri = { .type = uri_id }; *watch_mask_ptr |= MPD_IDLE_PLAYLIST; - STRTOL(id, args[0], endptr, err); + STRTOL(uri.id, args[0], endptr, err); RETURN_IF(err, "STRTOL failed", false); - uri.value = &id; return database_queue_add_uri(db, &uri, 1); /* UNUSED(win); diff --git a/src/database/queue.c b/src/database/queue.c index 7d476cfa4e00c066ee3cddd8685c5f050f18e6a3..ca0455241fea5f7b09870fa79e31b47b835b378d 100644 --- a/src/database/queue.c +++ b/src/database/queue.c @@ -266,7 +266,7 @@ database_queue_add_uri(volatile sqlite3 *db, struct lkt_uri *uri, int priority) return queue_add_with_col_like_str(db, LKT_DATABASE_KARA_ALL, uri->value, priority); case uri_id: - return database_queue_add_id(db, *(size_t *) uri->value, priority); + return database_queue_add_id(db, uri->id, priority); case uri_type: return queue_add_with_col_like_str(db, LKT_DATABASE_NAME_KTYPE, uri->value, priority);