pango: patch to prevent infinite loops
Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
parent
71e2aa746a
commit
9432cd285c
1 changed files with 81 additions and 0 deletions
|
@ -29,6 +29,13 @@ class Pango < Formula
|
||||||
cause "Undefined symbols when linking"
|
cause "Undefined symbols when linking"
|
||||||
end
|
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
|
def install
|
||||||
args = %W[
|
args = %W[
|
||||||
--disable-dependency-tracking
|
--disable-dependency-tracking
|
||||||
|
@ -53,3 +60,77 @@ class Pango < Formula
|
||||||
system "#{bin}/pango-querymodules", "--version"
|
system "#{bin}/pango-querymodules", "--version"
|
||||||
end
|
end
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue