From 55fc6b08a75996e09c1ef2ce416290fc4ba2091b Mon Sep 17 00:00:00 2001 From: Alexander Kabaev Date: Tue, 12 Aug 2003 15:32:13 +0000 Subject: Restore the patch to stop mozilla from crashing on some russian sites. --- .../files/patch-gfx_src_gtk_nsFontMetricsXft.cpp | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 www/firefox-esr/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp (limited to 'www/firefox-esr') diff --git a/www/firefox-esr/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox-esr/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox-esr/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp @@ -0,0 +1,57 @@ +--- gfx/src/gtk/nsFontMetricsXft.cpp.save Thu Aug 7 12:14:49 2003 ++++ gfx/src/gtk/nsFontMetricsXft.cpp Thu Aug 7 12:33:45 2003 +@@ -106,6 +106,7 @@ + FcPattern *mPattern; + FcPattern *mFontName; + FcCharSet *mCharset; ++ int mNotXft; + }; + + class nsFontXftInfo; +@@ -1051,7 +1052,7 @@ + // font in our loaded list that supports the character + for (PRInt32 i = 0, end = mLoadedFonts.Count(); i < end; ++i) { + nsFontXft *font = (nsFontXft *)mLoadedFonts.ElementAt(i); +- if (font->HasChar(PRUint32(aChar))) ++ if (font->HasChar(PRUint32(aChar)) && font->GetXftFont()) + return font; + } + +@@ -1492,7 +1493,7 @@ + // this character. + for (PRInt32 j = 0, end = mLoadedFonts.Count(); j < end; ++j) { + font = (nsFontXft *)mLoadedFonts.ElementAt(j); +- if (font->HasChar(c)) { ++ if (font->HasChar(c) && font->GetXftFont()) { + currFont = font; + goto FoundFont; // for speed -- avoid "if" statement + } +@@ -1922,6 +1923,7 @@ + FcPatternReference(mFontName); + + mXftFont = nsnull; ++ mNotXft = 0; + + // set up our charset + mCharset = nsnull; +@@ -1948,7 +1950,7 @@ + XftFont * + nsFontXft::GetXftFont(void) + { +- if (!mXftFont) { ++ if (!mXftFont && !mNotXft) { + FcPattern *pat = FcFontRenderPrepare(0, mPattern, mFontName); + if (!pat) + return nsnull; +@@ -1967,8 +1969,10 @@ + FcPatternDel(pat, FC_SPACING); + + mXftFont = XftFontOpenPattern(GDK_DISPLAY(), pat); +- if (!mXftFont) ++ if (!mXftFont) { + FcPatternDestroy(pat); ++ mNotXft = 1; ++ } + } + + return mXftFont; -- cgit v1.2.3