In 1c73379ed8483dcf71c5ccfc459c2c22516a9aef I changed
[dcpomatic.git] / src / lib / font_config.cc
index d4a442fc1f84434978b0ec02eaabce5fd6f89bd6..8804bd6d96522b8aa2baf0a8b9e341405393766e 100644 (file)
@@ -56,7 +56,7 @@ FontConfig::~FontConfig()
 string
 FontConfig::make_font_available(shared_ptr<dcpomatic::Font> font)
 {
-       auto existing = _available_fonts.find(font->id());
+       auto existing = _available_fonts.find(font->content());
        if (existing != _available_fonts.end()) {
                return existing->second;
        }
@@ -107,7 +107,10 @@ FontConfig::make_font_available(shared_ptr<dcpomatic::Font> font)
 
        DCPOMATIC_ASSERT(font_name);
 
-       _available_fonts[font->id()] = *font_name;
+       /* We need to use the font object as the key, as we may be passed the same shared_ptr to a modified
+        * Font object in the future and in that case we need to load the new font.
+        */
+       _available_fonts[font->content()] = *font_name;
 
        FcConfigBuildFonts(_config);
        return *font_name;