aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Formula
diff options
context:
space:
mode:
authorBartosz2013-02-03 17:39:39 +0100
committerAdam Vandenberg2013-02-03 09:57:28 -0800
commitd5f5812e1d8c60161d287a8bad6570eb951594fa (patch)
tree1192d434ab95b2cd97268a79e986fe2284ea1f4a /Library/Formula
parent9ab5ec331037581124dc885e39f125ca13235c96 (diff)
downloadhomebrew-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.rb81
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