mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-02 10:00:54 +00:00
119491 patch by Kenneth Herron (kherron) <kjh-5727@comcast.net>
r=biesi sr=bzbarsky replace printf-style debugging with nspr logs
This commit is contained in:
parent
317cfcd106
commit
158a8ff0cb
@ -58,7 +58,6 @@
|
||||
#include "nsString.h"
|
||||
#include "nsFontMetricsPS.h"
|
||||
#include "nsPostScriptObj.h"
|
||||
#include "nsFontPSDebug.h"
|
||||
#include "nspr.h"
|
||||
#include "nsILanguageAtomService.h"
|
||||
|
||||
@ -66,7 +65,6 @@
|
||||
static PRLogModuleInfo *nsDeviceContextPSLM = PR_NewLogModule("nsDeviceContextPS");
|
||||
#endif /* PR_LOGGING */
|
||||
|
||||
PRUint32 gFontPSDebug = 0;
|
||||
nsIAtom* gUsersLocale = nsnull;
|
||||
|
||||
#ifdef WE_DO_NOT_SUPPORT_MULTIPLE_PRINT_DEVICECONTEXTS
|
||||
@ -226,13 +224,6 @@ nsDeviceContextPS::InitDeviceContextPS(nsIDeviceContext *aCreatingDeviceContext,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NS_FONTPS_DEBUG
|
||||
char* debug = PR_GetEnv("NS_FONTPS_DEBUG");
|
||||
if (debug) {
|
||||
PR_sscanf(debug, "%lX", &gFontPSDebug);
|
||||
}
|
||||
#endif
|
||||
|
||||
// the user's locale
|
||||
nsCOMPtr<nsILanguageAtomService> langService;
|
||||
langService = do_GetService(NS_LANGUAGEATOMSERVICE_CONTRACTID);
|
||||
|
@ -50,7 +50,7 @@
|
||||
#ifdef MOZ_ENABLE_FREETYPE2
|
||||
#include "nsType8.h"
|
||||
#endif
|
||||
#include "nsFontPSDebug.h"
|
||||
#include "prlog.h"
|
||||
|
||||
#include "nsArray.h"
|
||||
|
||||
@ -64,6 +64,10 @@ static nsFontPS* CreateFontPS(nsITrueTypeFontCatalogEntry*, const nsFont&,
|
||||
static NS_DEFINE_CID(kFCSCID, NS_FONTCATALOGSERVICE_CID);
|
||||
#endif
|
||||
|
||||
#ifdef PR_LOGGING
|
||||
static PRLogModuleInfo *gFontMetricsPSM = PR_NewLogModule("FontMetricsPS");
|
||||
#endif
|
||||
|
||||
/** ---------------------------------------------------
|
||||
* See documentation in nsFontMetricsPS.h
|
||||
* @update 2/26/99 dwc
|
||||
@ -726,8 +730,8 @@ nsFontPSFreeType::CSSFontEnumCallback(const nsString& aFamily, PRBool aGeneric,
|
||||
else // FFRE
|
||||
familyname.Append(Substring(value, startFamily, endFamily - startFamily));
|
||||
}
|
||||
FIND_FONTPS_PRINTF(("generic font \"%s\" -> \"%s\"", name.get(),
|
||||
familyname.get()));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG,
|
||||
("generic font \"%s\" -> \"%s\"\n", name.get(), familyname.get()));
|
||||
}
|
||||
else
|
||||
familyname.AppendWithConversion(aFamily);
|
||||
@ -848,7 +852,6 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
fpi.fontps = aFontMetrics->GetFontsPS();
|
||||
|
||||
int i = 0;
|
||||
nsCAutoString familyName, stylename;
|
||||
while (1) {
|
||||
//
|
||||
// see if it is already in the list of fonts
|
||||
@ -862,12 +865,15 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
}
|
||||
if (CCMAP_HAS_CHAR(fi->ccmap, aChar)) {
|
||||
if (!fi->fontps) {
|
||||
if (gFontPSDebug & NS_FONTPS_DEBUG_FIND_FONT) {
|
||||
#ifdef PR_LOGGING
|
||||
if (PR_LOG_TEST(gFontMetricsPSM, PR_LOG_DEBUG)) {
|
||||
nsCAutoString familyName, styleName;
|
||||
fi->entry->GetFamilyName(familyName);
|
||||
fi->entry->GetStyleName(stylename);
|
||||
FIND_FONTPS_PRINTF(("CreateFontPS %s/%s", familyName.get(),
|
||||
stylename.get()));
|
||||
fi->entry->GetStyleName(styleName);
|
||||
PR_LogPrint("CreateFontPS %s/%s\n",
|
||||
familyName.get(), styleName.get());
|
||||
}
|
||||
#endif
|
||||
fi->fontps = CreateFontPS(fi->entry, aFont, aFontMetrics);
|
||||
}
|
||||
if (fi->fontps)
|
||||
@ -913,53 +919,59 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
|
||||
switch (state) {
|
||||
case 0:
|
||||
FIND_FONTPS_PRINTF(("get the CSS specified entries for the element's "
|
||||
"language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get the CSS specified entries for the element's language"));
|
||||
aFont.EnumerateFamilies(nsFontPSFreeType::CSSFontEnumCallback, &fpi);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
FIND_FONTPS_PRINTF(("get the CSS specified entries for the user's "
|
||||
"locale"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get the CSS specified entries for the user's locale"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = locale;
|
||||
aFont.EnumerateFamilies(nsFontPSFreeType::CSSFontEnumCallback, &fpi2);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
FIND_FONTPS_PRINTF(("get the CSS specified entries for any language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get the CSS specified entries for any language"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = emptyStr;
|
||||
aFont.EnumerateFamilies(nsFontPSFreeType::CSSFontEnumCallback, &fpi2);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
FIND_FONTPS_PRINTF(("get the user pref for the element's language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get the user pref for the element's language"));
|
||||
AddUserPref(lang, aFont, &fpi);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
FIND_FONTPS_PRINTF(("get the user pref for the user's locale"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get the user pref for the user's locale"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = locale;
|
||||
aFont.EnumerateFamilies(nsFontPSFreeType::CSSFontEnumCallback, &fpi2);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
FIND_FONTPS_PRINTF(("get all the entries for this language/style"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get all the entries for this language/style"));
|
||||
AddFontEntries(emptyStr, fpi.lang, fpi.weight, anyWidth, fpi.slant,
|
||||
anySpacing, &fpi);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
FIND_FONTPS_PRINTF(("get all the entries for the locale/style"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"get all the entries for the locale/style"));
|
||||
AddFontEntries(emptyStr, locale, fpi.weight, anyWidth, fpi.slant,
|
||||
anySpacing, &fpi);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations of CSS"
|
||||
"specified entries for the element's language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations of CSS "
|
||||
"specified entries for the element's language"));
|
||||
fpi2 = fpi;
|
||||
fpi2.weight = anyWeight;
|
||||
fpi2.slant = 0;
|
||||
@ -967,8 +979,9 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
break;
|
||||
|
||||
case 8:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations of CSS "
|
||||
"specified entries for the user's locale"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations of CSS "
|
||||
"specified entries for the user's locale"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = locale;
|
||||
fpi2.weight = anyWeight;
|
||||
@ -977,8 +990,9 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
break;
|
||||
|
||||
case 9:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations of CSS "
|
||||
"specified entries for any language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations of CSS "
|
||||
"specified entries for any language"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = emptyStr;
|
||||
fpi2.weight = anyWeight;
|
||||
@ -987,8 +1001,8 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
break;
|
||||
|
||||
case 10:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations of the user "
|
||||
"pref"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations of the user pref"));
|
||||
fpi2 = fpi;
|
||||
fpi2.lang = emptyStr;
|
||||
fpi2.weight = anyWeight;
|
||||
@ -997,21 +1011,21 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
break;
|
||||
|
||||
case 11:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations for this "
|
||||
"language"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations for this language"));
|
||||
AddFontEntries(emptyStr, fpi.lang, anyWeight, anyWidth, anySlant,
|
||||
anySpacing, &fpi);
|
||||
break;
|
||||
|
||||
case 12:
|
||||
FIND_FONTPS_PRINTF(("wildcard the slant/weight variations of the "
|
||||
"locale"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n",
|
||||
"wildcard the slant/weight variations of the locale"));
|
||||
AddFontEntries(emptyStr, locale, anyWeight, anyWidth, anySlant,
|
||||
anySpacing, &fpi);
|
||||
break;
|
||||
|
||||
case 13:
|
||||
FIND_FONTPS_PRINTF(("get ALL font entries"));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, ("%s\n", "get ALL font entries"));
|
||||
AddFontEntries(emptyStr, emptyStr, anyWeight, anyWidth, anySlant,
|
||||
anySpacing, &fpi);
|
||||
break;
|
||||
@ -1019,14 +1033,16 @@ nsFontPSFreeType::FindFont(PRUnichar aChar, const nsFont& aFont,
|
||||
default:
|
||||
// try to always return a font even if no font supports this char
|
||||
if (fpi.fontps->Count()) {
|
||||
FIND_FONTPS_PRINTF(("failed to find a font supporting 0x%04x so "
|
||||
"returning 1st font in list", aChar));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG,
|
||||
("failed to find a font supporting 0x%04x so "
|
||||
"returning 1st font in list\n", aChar));
|
||||
fontps *fi = (fontps *)fpi.fontps->ElementAt(0);
|
||||
if (!fi->fontps)
|
||||
fi->fontps = CreateFontPS(fi->entry, aFont, aFontMetrics);
|
||||
return fi->fontps;
|
||||
}
|
||||
FIND_FONTPS_PRINTF(("failed to find a font supporting 0x%04x", aChar));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_WARNING,
|
||||
("failed to find a font supporting 0x%04x\n", aChar));
|
||||
return (nsnull);
|
||||
}
|
||||
}
|
||||
@ -1043,12 +1059,12 @@ nsFontPSFreeType::AddFontEntries(nsACString& aFamilyName, nsACString& aLanguage,
|
||||
nsresult rv = NS_OK;
|
||||
nsCAutoString name(aFamilyName);
|
||||
nsCAutoString lang(aLanguage);
|
||||
ADD_ENTRY_FONTPS_PRINTF((" family = '%s'", name.get()));
|
||||
ADD_ENTRY_FONTPS_PRINTF((" lang = '%s'", lang.get()));
|
||||
ADD_ENTRY_FONTPS_PRINTF((" aWeight = %d", aWeight));
|
||||
ADD_ENTRY_FONTPS_PRINTF((" aWidth = %d", aWidth));
|
||||
ADD_ENTRY_FONTPS_PRINTF((" aSlant = %d", aSlant));
|
||||
ADD_ENTRY_FONTPS_PRINTF((" aSpacing = %d", aSpacing));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" family = '%s'", name.get()));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" lang = '%s'", lang.get()));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" aWeight = %d", aWeight));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" aWidth = %d", aWidth));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" aSlant = %d", aSlant));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" aSpacing = %d", aSpacing));
|
||||
|
||||
nsCOMPtr<nsIFontCatalogService> fcs(do_GetService(kFCSCID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
@ -1064,28 +1080,27 @@ nsFontPSFreeType::AddFontEntries(nsACString& aFamilyName, nsACString& aLanguage,
|
||||
|
||||
rv = entryList->GetLength(&count);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
ADD_ENTRY_FONTPS_PRINTF((" count = %d", count));
|
||||
PR_LOG(gFontMetricsPSM, PR_LOG_DEBUG, (" count = %d", count));
|
||||
|
||||
for (i=0; i<count; i++) {
|
||||
nsCOMPtr<nsITrueTypeFontCatalogEntry> entry = do_QueryElementAt(entryList,
|
||||
i, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCAutoString fontname, stylename;
|
||||
if (gFontPSDebug & NS_FONTPS_DEBUG_ADD_ENTRY) {
|
||||
entry->GetFamilyName(fontname);
|
||||
entry->GetStyleName(stylename);
|
||||
}
|
||||
|
||||
// check if already in list
|
||||
nsVoidKey key((void*)entry);
|
||||
if (aFpi->alreadyLoaded->Get(&key)) {
|
||||
ADD_ENTRY_FONTPS_PRINTF((" -- '%s/%s' already loaded",
|
||||
fontname.get(), stylename.get()));
|
||||
continue;
|
||||
PRBool loaded = aFpi->alreadyLoaded->Exists(&key);
|
||||
#ifdef PR_LOGGING
|
||||
if (PR_LOG_TEST(gFontMetricsPSM, PR_LOG_DEBUG)) {
|
||||
nsCAutoString fontname, stylename;
|
||||
entry->GetFamilyName(fontname);
|
||||
entry->GetStyleName(stylename);
|
||||
PR_LogPrint(" -- %s '%s/%s'\n", (loaded ? "already loaded" : "load"),
|
||||
fontname.get(), stylename.get());
|
||||
}
|
||||
ADD_ENTRY_FONTPS_PRINTF((" load '%s/%s'", fontname.get(),
|
||||
stylename.get()));
|
||||
#endif
|
||||
if (loaded)
|
||||
continue;
|
||||
|
||||
PRUint16 *ccmap;
|
||||
PRUint32 size;
|
||||
|
@ -1,77 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* ex: set tabstop=8 softtabstop=2 shiftwidth=2 expandtab:
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Golden Hills Computer Services code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Brian Stell <bstell@ix.netcom.com>.
|
||||
*
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Brian Stell <bstell@ix.netcom.com>.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
|
||||
#ifndef nsFontPSDebug_h__
|
||||
#define nsFontPSDebug_h__
|
||||
|
||||
#define NS_FONTPS_DEBUG_FIND_FONT 0x01
|
||||
#define NS_FONTPS_DEBUG_ADD_ENTRY 0x02
|
||||
|
||||
#undef NS_FONTPS_DEBUG
|
||||
#define NS_FONTPS_DEBUG 1
|
||||
#ifdef NS_FONTPS_DEBUG
|
||||
|
||||
# define DEBUG_PRINTF(x) \
|
||||
DEBUG_PRINTF_MACRO(x, 0xFFFF)
|
||||
|
||||
# define DEBUG_PRINTF_MACRO(x, type) \
|
||||
PR_BEGIN_MACRO \
|
||||
if (gFontPSDebug & (type)) { \
|
||||
printf x ; \
|
||||
printf(", %s %d\n", __FILE__, __LINE__); \
|
||||
} \
|
||||
PR_END_MACRO
|
||||
#else
|
||||
# define DEBUG_PRINTF_MACRO(x, type) \
|
||||
PR_BEGIN_MACRO \
|
||||
PR_END_MACRO
|
||||
#endif
|
||||
|
||||
#define FIND_FONTPS_PRINTF(x) \
|
||||
DEBUG_PRINTF_MACRO(x, NS_FONTPS_DEBUG_FIND_FONT)
|
||||
|
||||
#define ADD_ENTRY_FONTPS_PRINTF(x) \
|
||||
DEBUG_PRINTF_MACRO(x, NS_FONTPS_DEBUG_ADD_ENTRY)
|
||||
|
||||
extern PRUint32 gFontPSDebug;
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user