diff options
Diffstat (limited to 'dviware/dvisvgm/src/FontManager.cpp')
-rw-r--r-- | dviware/dvisvgm/src/FontManager.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/dviware/dvisvgm/src/FontManager.cpp b/dviware/dvisvgm/src/FontManager.cpp index 929e9f823b..a41b8563b8 100644 --- a/dviware/dvisvgm/src/FontManager.cpp +++ b/dviware/dvisvgm/src/FontManager.cpp @@ -2,7 +2,7 @@ ** FontManager.cpp ** ** ** ** This file is part of dvisvgm -- a fast DVI to SVG converter ** -** Copyright (C) 2005-2020 Martin Gieseking <martin.gieseking@uos.de> ** +** Copyright (C) 2005-2021 Martin Gieseking <martin.gieseking@uos.de> ** ** ** ** This program is free software; you can redistribute it and/or ** ** modify it under the terms of the GNU General Public License as ** @@ -221,16 +221,14 @@ int FontManager::registerFont (uint32_t fontnum, const string &name, uint32_t ch } _name2id[name] = newid; } - _fonts.emplace_back(std::move(newfont)); + _fonts.push_back(std::move(newfont)); if (_vfStack.empty()) // register font referenced in dvi file? _num2id[fontnum] = newid; else { // register font referenced in vf file const VirtualFont *vf = _vfStack.top(); _vfnum2id[vf][fontnum] = newid; - if (_vfFirstFontNumMap.find(vf) == _vfFirstFontNumMap.end()) { // first fontdef of VF? - _vfFirstFontNumMap.emplace(vf, fontnum); - _vfFirstFontMap.emplace(vf, _fonts.back().get()); - } + _vfFirstFontNumMap.emplace(vf, fontnum); + _vfFirstFontMap.emplace(vf, _fonts.back().get()); } return newid; } @@ -269,7 +267,7 @@ int FontManager::registerFont (uint32_t fontnum, string filename, int fontIndex, const int newid = _fonts.size(); // the new font gets this ID auto it = _name2id.find(fontname); if (it != _name2id.end()) { // font with same name already registered? - if (auto font = dynamic_cast<NativeFont*>(_fonts[it->second].get())) + if (auto font = font_cast<NativeFont*>(_fonts[it->second].get())) newfont = font->clone(ptsize, style, color); } else { @@ -291,7 +289,7 @@ int FontManager::registerFont (uint32_t fontnum, string filename, int fontIndex, } _name2id[fontname] = newid; } - _fonts.emplace_back(std::move(newfont)); + _fonts.push_back(std::move(newfont)); _num2id[fontnum] = newid; return newid; } @@ -330,7 +328,7 @@ ostream& FontManager::write (ostream &os, Font *font, int level) { if (_fonts[i] == font) id = i; - VirtualFont *vf = dynamic_cast<VirtualFont*>(font); + VirtualFont *vf = font_cast<VirtualFont*>(font); for (int j=0; j < level+1; j++) os << " "; os << "id " << id |