diff options
author | Alexander Kabaev <kan@FreeBSD.org> | 2003-08-12 15:32:13 +0000 |
---|---|---|
committer | Alexander Kabaev <kan@FreeBSD.org> | 2003-08-12 15:32:13 +0000 |
commit | 55fc6b08a75996e09c1ef2ce416290fc4ba2091b (patch) | |
tree | 32083d29d0ef4ae5f39a4e1972c848071089bd42 | |
parent | Remove libpanel. It has sered us well, but now that the GNOME 1.4 desktop (diff) |
Restore the patch to stop mozilla from crashing on some russian sites.
Notes
Notes:
svn path=/head/; revision=86833
Diffstat (limited to '')
10 files changed, 570 insertions, 0 deletions
diff --git a/www/firefox-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox-devel/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; 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; diff --git a/www/firefox/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox/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; diff --git a/www/firefox10/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox10/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox10/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; diff --git a/www/firefox15/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox15/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox15/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; diff --git a/www/firefox3-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox3-devel/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox3-devel/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; diff --git a/www/firefox35/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox35/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox35/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; diff --git a/www/firefox36/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/firefox36/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/firefox36/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; diff --git a/www/flock/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/flock/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/flock/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; diff --git a/www/mozilla-firebird/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp b/www/mozilla-firebird/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp new file mode 100644 index 000000000000..0b0e08247101 --- /dev/null +++ b/www/mozilla-firebird/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; |