diff --git a/src/fontcache.h b/src/fontcache.h --- a/src/fontcache.h +++ b/src/fontcache.h @@ -134,7 +134,7 @@ public: * Get the name of this font. * @return The name of the font. */ - virtual const char *GetFontName() = 0; + virtual std::string GetFontName() = 0; /** * Get the font cache of a given font size. diff --git a/src/fontcache/freetypefontcache.cpp b/src/fontcache/freetypefontcache.cpp --- a/src/fontcache/freetypefontcache.cpp +++ b/src/fontcache/freetypefontcache.cpp @@ -42,7 +42,7 @@ public: ~FreeTypeFontCache(); void ClearFontCache() override; GlyphID MapCharToGlyph(WChar key) override; - const char *GetFontName() override { return face->family_name; } + std::string GetFontName() override { return face->family_name; } bool IsBuiltInFont() override { return false; } const void *GetOSHandle() override { return &face; } }; diff --git a/src/fontcache/spritefontcache.h b/src/fontcache/spritefontcache.h --- a/src/fontcache/spritefontcache.h +++ b/src/fontcache/spritefontcache.h @@ -31,7 +31,7 @@ public: virtual bool GetDrawGlyphShadow(); virtual GlyphID MapCharToGlyph(WChar key) { assert(IsPrintable(key)); return SPRITE_GLYPH | key; } virtual const void *GetFontTable(uint32 tag, size_t &length) { length = 0; return nullptr; } - virtual const char *GetFontName() { return "sprite"; } + virtual std::string GetFontName() { return "sprite"; } virtual bool IsBuiltInFont() { return true; } }; diff --git a/src/os/macosx/font_osx.h b/src/os/macosx/font_osx.h --- a/src/os/macosx/font_osx.h +++ b/src/os/macosx/font_osx.h @@ -30,7 +30,7 @@ public: void ClearFontCache() override; GlyphID MapCharToGlyph(WChar key) override; - const char *GetFontName() override { return font_name.c_str(); } + std::string GetFontName() override { return font_name; } bool IsBuiltInFont() override { return false; } const void *GetOSHandle() override { return font.get(); } }; diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp --- a/src/os/macosx/string_osx.cpp +++ b/src/os/macosx/string_osx.cpp @@ -178,7 +178,7 @@ static CTRunDelegateCallbacks _sprite_fo if (font == nullptr) { if (!_font_cache[i.second->fc->GetSize()]) { /* Cache font information. */ - CFAutoRelease font_name(CFStringCreateWithCString(kCFAllocatorDefault, i.second->fc->GetFontName(), kCFStringEncodingUTF8)); + CFAutoRelease font_name(CFStringCreateWithCString(kCFAllocatorDefault, i.second->fc->GetFontName().c_str(), kCFStringEncodingUTF8)); _font_cache[i.second->fc->GetSize()].reset(CTFontCreateWithName(font_name.get(), i.second->fc->GetFontSize(), nullptr)); } font = _font_cache[i.second->fc->GetSize()].get(); diff --git a/src/os/windows/font_win32.h b/src/os/windows/font_win32.h --- a/src/os/windows/font_win32.h +++ b/src/os/windows/font_win32.h @@ -34,7 +34,7 @@ public: ~Win32FontCache(); void ClearFontCache() override; GlyphID MapCharToGlyph(WChar key) override; - const char *GetFontName() override { return this->fontname.c_str(); } + std::string GetFontName() override { return this->fontname; } const void *GetOSHandle() override { return &this->logfont; } };