diff options
author | kan <kan@FreeBSD.org> | 2003-08-12 23:32:13 +0800 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2003-08-12 23:32:13 +0800 |
commit | a73e8c4d22836c793ee162b8379853211e7d5bdf (patch) | |
tree | 52eee082b45f5b3ffcd601fbfc6651b4a5c0c4cd /www | |
parent | d40718e02c3e4323331cdf834a1e985f2b412f80 (diff) | |
download | freebsd-ports-gnome-a73e8c4d22836c793ee162b8379853211e7d5bdf.tar.gz freebsd-ports-gnome-a73e8c4d22836c793ee162b8379853211e7d5bdf.tar.zst freebsd-ports-gnome-a73e8c4d22836c793ee162b8379853211e7d5bdf.zip |
Restore the patch to stop mozilla from crashing on some russian sites.
Diffstat (limited to 'www')
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; |