Tag: remove method AddItem()

Use class TagBuilder instead.
This commit is contained in:
Max Kellermann 2013-12-03 12:12:30 +01:00
parent 308fdf6e9a
commit 8a5209ad93
3 changed files with 8 additions and 63 deletions

View File

@ -147,43 +147,3 @@ Tag::HasType(TagType type) const
{
return GetValue(type) != nullptr;
}
void
Tag::AddItemInternal(TagType type, const char *value, size_t len)
{
unsigned int i = num_items;
char *p = FixTagString(value, len);
if (p != nullptr) {
value = p;
len = strlen(value);
}
num_items++;
items = (TagItem **)g_realloc(items, items_size(*this));
tag_pool_lock.lock();
items[i] = tag_pool_get_item(type, value, len);
tag_pool_lock.unlock();
g_free(p);
}
void
Tag::AddItem(TagType type, const char *value, size_t len)
{
if (ignore_tag_items[type])
return;
if (value == nullptr || len == 0)
return;
AddItemInternal(type, value, len);
}
void
Tag::AddItem(TagType type, const char *value)
{
AddItem(type, value, strlen(value));
}

View File

@ -103,24 +103,6 @@ struct Tag {
*/
void Clear();
/**
* Appends a new tag item.
*
* @param type the type of the new tag item
* @param value the value of the tag item (not null-terminated)
* @param len the length of #value
*/
void AddItem(TagType type, const char *value, size_t len);
/**
* Appends a new tag item.
*
* @param tag the #tag object
* @param type the type of the new tag item
* @param value the value of the tag item (null-terminated)
*/
void AddItem(TagType type, const char *value);
/**
* Merges the data from two tags. If both tags share data for the
* same TagType, only data from "add" is used.
@ -152,9 +134,6 @@ struct Tag {
*/
gcc_pure
bool HasType(TagType type) const;
private:
void AddItemInternal(TagType type, const char *value, size_t len);
};
/**

View File

@ -24,6 +24,7 @@
#include "ConfigData.hxx"
#include "stdbin.h"
#include "tag/Tag.hxx"
#include "tag/TagBuilder.hxx"
#include "util/Error.hxx"
#include <stddef.h>
@ -81,8 +82,13 @@ main(gcc_unused int argc, gcc_unused char **argv)
encoder_to_stdout(*encoder);
Tag tag;
tag.AddItem(TAG_ARTIST, "Foo");
tag.AddItem(TAG_TITLE, "Bar");
{
TagBuilder tag_builder;
tag_builder.AddItem(TAG_ARTIST, "Foo");
tag_builder.AddItem(TAG_TITLE, "Bar");
tag_builder.Commit(tag);
}
success = encoder_tag(encoder, &tag, IgnoreError());
assert(success);