}
static void pakfire_package_set_relationlist(PakfirePackage pkg, Id type, PakfireRelationList relationlist) {
-#if 0
- // This implemention should be the fastest, but unfortunately does not work.
- Queue q;
- pakfire_relationlist_clone_to_queue(relationlist, &q);
-
Solvable* s = get_solvable(pkg);
- solvable_set_idarray(s, type, &q);
+ Queue* q = pakfire_relationlist_get_queue(relationlist);
- queue_free(&q);
+#if 0
+ // This implemention should be the fastest, but unfortunately does not work.
+ solvable_set_idarray(s, type, q);
+#else
+ for (int i = 0; i < q->count; i++)
+ solvable_add_idarray(s, type, q->elements[i]);
#endif
-
- Solvable* s = get_solvable(pkg);
- solvable_unset(s, type);
-
- size_t size = pakfire_relationlist_size(relationlist);
- for (unsigned int i = 0; i < size; i++) {
- PakfireRelation relation = pakfire_relationlist_get(relationlist, i);
- solvable_add_idarray(s, type, pakfire_relation_get_id(relation));
-
- pakfire_relation_unref(relation);
- }
}
static void pakfire_package_add_relation(PakfirePackage pkg, Id type, PakfireRelation relation) {
return pakfire_relation_create_from_id(relationlist->pakfire, id);
}
-void pakfire_relationlist_clone_to_queue(PakfireRelationList relationlist, Queue* q) {
- queue_init_clone(q, &relationlist->queue);
+Queue* pakfire_relationlist_get_queue(PakfireRelationList list) {
+ return &list->queue;
}