summaryrefslogtreecommitdiff
path: root/src/lib/text_content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-06-09 22:45:24 +0200
committerCarl Hetherington <cth@carlh.net>2022-06-10 23:12:24 +0200
commit1266a5149e056a17b4a9276ccf6ea4a79cc93610 (patch)
treeb5655ff0c0d17dcae961490559e4454d19bf427d /src/lib/text_content.cc
parent14e02ad2f79bdc6fbc320ec7b9282b5faabdb825 (diff)
Add some missing locking.
Diffstat (limited to 'src/lib/text_content.cc')
-rw-r--r--src/lib/text_content.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/text_content.cc b/src/lib/text_content.cc
index e91b7bcc0..a85b271a8 100644
--- 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)
{
- 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 ();
}
@@ -653,6 +655,14 @@ TextContent::take_settings_from (shared_ptr<const TextContent> c)
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;
});
@@ -668,6 +678,8 @@ TextContent::get_font(string id) const
void
TextContent::clear_fonts()
{
+ boost::mutex::scoped_lock lm(_mutex);
+
_fonts.clear();
}