summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-04-13 23:40:25 +0200
committerCarl Hetherington <cth@carlh.net>2023-04-13 23:40:25 +0200
commitc08f6ee68083aed6df557be44f8bb370eb94777c (patch)
tree0e2f94d52e1e08e2c5fdbf3011459347928d0aa5 /src
parent70359290aea25fa31604bc2b1e1224823f09d186 (diff)
Fix resolve_fonts() if it is called twice.
Diffstat (limited to 'src')
-rw-r--r--src/interop_subtitle_asset.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/interop_subtitle_asset.cc b/src/interop_subtitle_asset.cc
index 0faf7bd5..4bf3958f 100644
--- a/src/interop_subtitle_asset.cc
+++ b/src/interop_subtitle_asset.cc
@@ -233,19 +233,19 @@ InteropSubtitleAsset::write (boost::filesystem::path p) const
void
InteropSubtitleAsset::resolve_fonts (vector<shared_ptr<Asset>> assets)
{
+ _fonts.clear();
+
for (auto asset: assets) {
auto font = dynamic_pointer_cast<FontAsset>(asset);
if (!font) {
continue;
}
- for (auto load_font_node: _load_font_nodes) {
- auto iter = std::find_if(_fonts.begin(), _fonts.end(), [load_font_node](Font const& font) { return font.load_id == load_font_node->id; });
+ DCP_ASSERT(_file);
- DCP_ASSERT(_file);
+ for (auto load_font_node: _load_font_nodes) {
auto const path_in_load_font_node = _file->parent_path() / load_font_node->uri;
-
- if (iter == _fonts.end() && font->file() && path_in_load_font_node == *font->file()) {
+ if (font->file() && path_in_load_font_node == *font->file()) {
_fonts.push_back(Font(load_font_node->id, asset->id(), font->file().get()));
}
}