diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-06-09 22:45:24 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-06-10 23:12:24 +0200 |
| commit | 1266a5149e056a17b4a9276ccf6ea4a79cc93610 (patch) | |
| tree | b5655ff0c0d17dcae961490559e4454d19bf427d /src/lib/text_content.cc | |
| parent | 14e02ad2f79bdc6fbc320ec7b9282b5faabdb825 (diff) | |
Add some missing locking.
Diffstat (limited to 'src/lib/text_content.cc')
| -rw-r--r-- | src/lib/text_content.cc | 14 |
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(); } |
