diff --git a/src/ass_file.cpp b/src/ass_file.cpp index 21aa23eaaae415bd67b75a4ffba64aa8cd97e497..bd605d9bc130c9f2375480290e4197a71f2f8d9f 100644 --- a/src/ass_file.cpp +++ b/src/ass_file.cpp @@ -229,8 +229,13 @@ void AssFile::Sort(EntryList<AssDialogue> &lst, CompFunc comp, std::set<AssDialo } } - uint32_t AssFile::AddExtradata(std::string const& key, std::string const& value) { + for (auto const& data : Extradata) { + // perform brute-force deduplication by simple key and value comparison + if (key == data.second.first && value == data.second.second) { + return data.first; + } + } // next_extradata_id must not exist assert(Extradata.find(next_extradata_id) == Extradata.end()); Extradata[next_extradata_id] = {key, value};