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; 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(); 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 * Merges the data from two tags. If both tags share data for the
* same TagType, only data from "add" is used. * same TagType, only data from "add" is used.
@ -152,9 +134,6 @@ struct Tag {
*/ */
gcc_pure gcc_pure
bool HasType(TagType type) const; 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 "ConfigData.hxx"
#include "stdbin.h" #include "stdbin.h"
#include "tag/Tag.hxx" #include "tag/Tag.hxx"
#include "tag/TagBuilder.hxx"
#include "util/Error.hxx" #include "util/Error.hxx"
#include <stddef.h> #include <stddef.h>
@ -81,8 +82,13 @@ main(gcc_unused int argc, gcc_unused char **argv)
encoder_to_stdout(*encoder); encoder_to_stdout(*encoder);
Tag tag; 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()); success = encoder_tag(encoder, &tag, IgnoreError());
assert(success); assert(success);