X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpango-font.cc;h=9fe6b78cb00a54a78273b5820c5bfe672ea10136;hb=212ca268e813cd72eca8c07e714e1b6669cba747;hp=a1e6182c568422eaa88f503033895065d5fb32d9;hpb=1de3d397c18622b6061402fef18e625701712bc5;p=lilypond.git diff --git a/lily/pango-font.cc b/lily/pango-font.cc index a1e6182c56..9fe6b78cb0 100644 --- a/lily/pango-font.cc +++ b/lily/pango-font.cc @@ -41,20 +41,20 @@ #include "warn.hh" #include "all-font-metrics.hh" #include "program-option.hh" +#include "open-type-font.hh" #if HAVE_PANGO_FT2 #include "stencil.hh" -using std::string; +Preinit_Pango_font::Preinit_Pango_font () +{ + physical_font_tab_ = SCM_EOL; +} Pango_font::Pango_font (PangoFT2FontMap *fontmap, PangoFontDescription const *description, Real output_scale) { - // This line looks stupid, but if we don't initialize physical_font_tab_ before - // we allocate memory in scm_c_make_hash_table, then that could trigger a garbage - // collection. - physical_font_tab_ = SCM_EOL; physical_font_tab_ = scm_c_make_hash_table (11); PangoDirection pango_dir = PANGO_DIRECTION_LTR; context_ = pango_context_new (); @@ -202,7 +202,7 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const b.scale (scale_); - char const *ps_name_str0 = FT_Get_Postscript_Name (ftface); + const string ps_name_str0 = get_postscript_name (ftface); FcPattern *fcpat = fcfont->font_pattern; FcChar8 *file_name_as_ptr = 0; @@ -322,11 +322,11 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const Real size = pango_font_description_get_size (descr) / (Real (PANGO_SCALE)); - if (!ps_name_str0) + if (ps_name_str0.empty ()) warning (_f ("no PostScript font name for font `%s'", file_name)); string ps_name; - if (!ps_name_str0 + if (ps_name_str0.empty () && file_name != "" && (file_name.find (".otf") != NPOS || file_name.find (".cff") != NPOS)) @@ -353,7 +353,7 @@ Pango_font::pango_item_string_stencil (PangoGlyphItem const *glyph_item) const name = String_convert::to_lower (name); ps_name = initial + name; } - else if (ps_name_str0) + else if (!ps_name_str0.empty ()) ps_name = ps_name_str0; if (ps_name.length ())