projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix font_id_map errors when importing DCP subtitles that have no
[dcpomatic.git]
/
src
/
lib
/
text_content.cc
diff --git
a/src/lib/text_content.cc
b/src/lib/text_content.cc
index e91b7bcc039c7e8344414455a14883dd0a55301c..a85b271a88d23dbfca216491e5777e701c720f03 100644
(file)
--- a/
src/lib/text_content.cc
+++ b/
src/lib/text_content.cc
@@
-445,7
+445,9
@@
TextContent::identifier () const
void
TextContent::add_font (shared_ptr<Font> font)
{
void
TextContent::add_font (shared_ptr<Font> font)
{
- DCPOMATIC_ASSERT(!get_font(font->id()));
+ boost::mutex::scoped_lock lm(_mutex);
+
+ DCPOMATIC_ASSERT(!get_font_unlocked(font->id()));
_fonts.push_back (font);
connect_to_fonts ();
}
_fonts.push_back (font);
connect_to_fonts ();
}
@@
-652,6
+654,14
@@
TextContent::take_settings_from (shared_ptr<const TextContent> c)
shared_ptr<dcpomatic::Font>
TextContent::get_font(string id) const
shared_ptr<dcpomatic::Font>
TextContent::get_font(string id) const
+{
+ boost::mutex::scoped_lock lm(_mutex);
+ return get_font_unlocked(id);
+}
+
+
+shared_ptr<dcpomatic::Font>
+TextContent::get_font_unlocked(string id) const
{
auto iter = std::find_if(_fonts.begin(), _fonts.end(), [&id](shared_ptr<dcpomatic::Font> font) {
return font->id() == id;
{
auto iter = std::find_if(_fonts.begin(), _fonts.end(), [&id](shared_ptr<dcpomatic::Font> font) {
return font->id() == id;
@@
-668,6
+678,8
@@
TextContent::get_font(string id) const
void
TextContent::clear_fonts()
{
void
TextContent::clear_fonts()
{
+ boost::mutex::scoped_lock lm(_mutex);
+
_fonts.clear();
}
_fonts.clear();
}