summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/deb/deblistparser.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index bcfbcccc2..baa1e46ec 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -258,12 +258,19 @@ std::vector<std::string> debListParser::AvailableDescriptionLanguages()
{
std::vector<std::string> const understood = APT::Configuration::getLanguages();
std::vector<std::string> avail;
+ static constexpr int prefixLen = 12;
+ static constexpr int avgLanguageLen = 5;
+ std::string tagname;
+
+ tagname.reserve(prefixLen + avgLanguageLen);
+ tagname.assign("Description-");
if (Section.Exists("Description") == true)
avail.push_back("");
for (std::vector<std::string>::const_iterator lang = understood.begin(); lang != understood.end(); ++lang)
{
- std::string const tagname = "Description-" + *lang;
- if (Section.Exists(tagname.c_str()) == true)
+ tagname.resize(prefixLen);
+ tagname.append(*lang);
+ if (Section.Exists(tagname) == true)
avail.push_back(*lang);
}
return avail;