Commit ff58b8d2 authored by Max Kellermann's avatar Max Kellermann

tag/Builder: move code to AddItemUnchecked()

parent 3f3f0af5
......@@ -188,6 +188,16 @@ TagBuilder::Complement(const Tag &other)
tag_pool_lock.unlock();
}
void
TagBuilder::AddItemUnchecked(TagType type, StringView value) noexcept
{
tag_pool_lock.lock();
auto i = tag_pool_get_item(type, value);
tag_pool_lock.unlock();
items.push_back(i);
}
inline void
TagBuilder::AddItemInternal(TagType type, StringView value)
{
......@@ -197,13 +207,9 @@ TagBuilder::AddItemInternal(TagType type, StringView value)
if (!f.IsNull())
value = { f.data, f.size };
tag_pool_lock.lock();
auto i = tag_pool_get_item(type, value);
tag_pool_lock.unlock();
AddItemUnchecked(type, value);
free(f.data);
items.push_back(i);
}
void
......@@ -229,11 +235,7 @@ TagBuilder::AddItem(TagType type, const char *value)
void
TagBuilder::AddEmptyItem(TagType type)
{
tag_pool_lock.lock();
auto i = tag_pool_get_item(type, StringView::Empty());
tag_pool_lock.unlock();
items.push_back(i);
AddItemUnchecked(type, StringView::Empty());
}
void
......
......@@ -133,6 +133,12 @@ public:
void Complement(const Tag &other);
/**
* A variant of AddItem() which does not attempt to fix up the
* value and does not check whether the tag type is disabled.
*/
void AddItemUnchecked(TagType type, StringView value) noexcept;
/**
* Appends a new tag item.
*
* @param type the type of the new tag item
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment