tag: optimize tag_dup(), copy item references

Don't call tag_pool_get_item() for duplicating tags, just increase the
item's reference counter instead.
This commit is contained in:
Max Kellermann
2008-08-29 15:04:49 +02:00
parent d8ad109e10
commit d38d2bc353
3 changed files with 42 additions and 7 deletions

View File

@@ -313,9 +313,11 @@ struct tag *tag_dup(const struct tag *tag)
ret = tag_new();
ret->time = tag->time;
ret->numOfItems = tag->numOfItems;
ret->items = xmalloc(ret->numOfItems * sizeof(ret->items[0]));
for (i = 0; i < tag->numOfItems; i++) {
tag_add_item(ret, tag->items[i]->type, tag->items[i]->value);
ret->items[i] = tag_pool_dup_item(tag->items[i]);
}
return ret;