diff -r 6e93e5485947 -r afe520f454bd librazor/merger.c --- a/librazor/merger.c Fri Jul 03 18:02:33 2009 +0100 +++ b/librazor/merger.c Fri Apr 23 21:07:15 2010 +0100 @@ -36,6 +36,7 @@ struct razor_set *set; struct hashtable table; struct hashtable file_table; + struct hashtable details_table; struct source source1; struct source source2; }; @@ -51,6 +52,8 @@ merger->set = razor_set_create(); hashtable_init(&merger->table, &merger->set->string_pool); hashtable_init(&merger->file_table, &merger->set->file_string_pool); + hashtable_init(&merger->details_table, + &merger->set->details_string_pool); merger->source1.set = set1; count = set1->properties.size / sizeof (struct razor_property); @@ -75,7 +78,7 @@ razor_merger_add_package(struct razor_merger *merger, struct razor_package *package) { - char *pool, *s; + char *pool, *details_pool, *s; struct list *r; struct razor_package *p; struct razor_set *set1; @@ -96,6 +99,7 @@ } pool = source->set->string_pool.data; + details_pool = source->set->details_string_pool.data; p = array_add(&merger->set->packages, sizeof *p); p->name = hashtable_tokenize(&merger->table, &pool[package->name]); p->flags = flags; @@ -103,6 +107,14 @@ &pool[package->version]); p->arch = hashtable_tokenize(&merger->table, &pool[package->arch]); + p->summary = hashtable_tokenize(&merger->details_table, + &details_pool[package->summary]); + p->description = hashtable_tokenize(&merger->details_table, + &details_pool[package->description]); + p->url = hashtable_tokenize(&merger->details_table, + &details_pool[package->url]); + p->license = hashtable_tokenize(&merger->details_table, + &details_pool[package->license]); p->properties = package->properties; r = list_first(&package->properties, &source->set->property_pool); @@ -593,5 +605,6 @@ { hashtable_release(&merger->table); hashtable_release(&merger->file_table); + hashtable_release(&merger->details_table); free(merger); }