Fix bug causing merger to place file names in the main string pool
authorJ. Ali Harlow <ali@juiblex.co.uk>
Wed, 14 Jan 2009 11:47:55 +0000 (11:47 +0000)
committerJ. Ali Harlow <ali@juiblex.co.uk>
Wed, 14 Jan 2009 11:47:55 +0000 (11:47 +0000)
rather than the files string pool.

librazor/merger.c

index 3ca69fa..c954d8f 100644 (file)
@@ -32,6 +32,7 @@ struct source {
 struct razor_merger {
        struct razor_set *set;
        struct hashtable table;
+       struct hashtable file_table;
        struct source source1;
        struct source source2;
 };
@@ -46,6 +47,7 @@ razor_merger_create(struct razor_set *set1, struct razor_set *set2)
        merger = zalloc(sizeof *merger);
        merger->set = razor_set_create();
        hashtable_init(&merger->table, &merger->set->string_pool);
+       hashtable_init(&merger->file_table, &merger->set->file_string_pool);
 
        merger->source1.set = set1;
        count = set1->properties.size / sizeof (struct razor_property);
@@ -213,7 +215,7 @@ add_file(struct razor_merger *merger, const char *name)
        struct razor_entry *e;
 
        e = array_add(&merger->set->files, sizeof *e);
-       e->name = hashtable_tokenize(&merger->table, name);
+       e->name = hashtable_tokenize(&merger->file_table, name);
        e->flags = 0;
        e->start = 0;
 
@@ -519,6 +521,7 @@ razor_merger_finish(struct razor_merger *merger)
 
        result = merger->set;
        hashtable_release(&merger->table);
+       hashtable_release(&merger->file_table);
        free(merger);
 
        return result;