diff options
| author | Bartosz | 2013-02-03 17:39:39 +0100 |
|---|---|---|
| committer | Adam Vandenberg | 2013-02-03 09:57:28 -0800 |
| commit | d5f5812e1d8c60161d287a8bad6570eb951594fa (patch) | |
| tree | 1192d434ab95b2cd97268a79e986fe2284ea1f4a /Library/Formula | |
| parent | 9ab5ec331037581124dc885e39f125ca13235c96 (diff) | |
| download | homebrew-d5f5812e1d8c60161d287a8bad6570eb951594fa.tar.bz2 | |
pango: patch to prevent infinite loops
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
Diffstat (limited to 'Library/Formula')
| -rw-r--r-- | Library/Formula/pango.rb | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Library/Formula/pango.rb b/Library/Formula/pango.rb index 0cd043fd3..332f1c7b1 100644 --- a/Library/Formula/pango.rb +++ b/Library/Formula/pango.rb @@ -29,6 +29,13 @@ class Pango < Formula cause "Undefined symbols when linking" end + # Fixes hanging of inkscape, already upstream for next version. + # https://bugs.launchpad.net/inkscape/+bug/1114392 + # http://git.gnome.org/browse/pango/commit/?id=10cc6557ba24239570ee9a7bcaa0a553aae9df95 + def patches + DATA + end + def install args = %W[ --disable-dependency-tracking @@ -53,3 +60,77 @@ class Pango < Formula system "#{bin}/pango-querymodules", "--version" end end +__END__ +diff --git a/pango/pangoft2-render.c b/pango/pangoft2-render.c +index 60cf432..42923f4 100644 +--- a/pango/pangoft2-render.c ++++ b/pango/pangoft2-render.c +@@ -210,7 +210,7 @@ pango_ft2_font_render_glyph (PangoFont *font, + return box; + } + +- face = pango_fc_font_lock_face (PANGO_FC_FONT (font)); ++ face = pango_ft2_font_get_face (font); + + if (face) + { +@@ -231,8 +231,6 @@ pango_ft2_font_render_glyph (PangoFont *font, + rendered->bitmap_left = face->glyph->bitmap_left; + rendered->bitmap_top = face->glyph->bitmap_top; + +- pango_fc_font_unlock_face (PANGO_FC_FONT (font)); +- + if (G_UNLIKELY (!rendered->bitmap.buffer)) { + g_slice_free (PangoFT2RenderedGlyph, rendered); + return NULL; +@@ -242,8 +240,6 @@ pango_ft2_font_render_glyph (PangoFont *font, + } + else + { +- pango_fc_font_unlock_face (PANGO_FC_FONT (font)); +- + generic_box: + return pango_ft2_font_render_box_glyph (PANGO_UNKNOWN_GLYPH_WIDTH, + PANGO_UNKNOWN_GLYPH_HEIGHT, +diff --git a/pango/pangoft2.c b/pango/pangoft2.c +index cbe1d21..dc6db5d 100644 +--- a/pango/pangoft2.c ++++ b/pango/pangoft2.c +@@ -424,13 +424,12 @@ pango_ft2_font_get_kerning (PangoFont *font, + static FT_Face + pango_ft2_font_real_lock_face (PangoFcFont *font) + { +- return pango_fc_font_lock_face (font); ++ return pango_ft2_font_get_face ((PangoFont *)font); + } + + static void +-pango_ft2_font_real_unlock_face (PangoFcFont *font) ++pango_ft2_font_real_unlock_face (PangoFcFont *font G_GNUC_UNUSED) + { +- pango_fc_font_unlock_face (font); + } + + static gboolean +@@ -500,18 +499,12 @@ pango_ft2_font_get_coverage (PangoFont *font, + PangoGlyph + pango_ft2_get_unknown_glyph (PangoFont *font) + { +- PangoFcFont *fc_font = PANGO_FC_FONT (font); +- FT_Face face; +- PangoGlyph glyph; +- +- face = pango_fc_font_lock_face (fc_font); ++ FT_Face face = pango_ft2_font_get_face (font); + if (face && FT_IS_SFNT (face)) + /* TrueType fonts have an 'unknown glyph' box on glyph index 0 */ +- glyph = 0; ++ return 0; + else +- glyph = PANGO_GLYPH_EMPTY; +- pango_fc_font_unlock_face (fc_font); +- return glyph; ++ return PANGO_GLYPH_EMPTY; + } + + typedef struct |
