summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-10 22:28:46 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-12-10 22:28:46 +0000
commit0b847e38433afef0b207c85ae593d39501696aad (patch)
treec6342497e3086e2661a753011bfe234d51ec985d
parent514411fcb4657f575eeb3e39a9056478a28306a0 (diff)
downloadchromium_src-0b847e38433afef0b207c85ae593d39501696aad.zip
chromium_src-0b847e38433afef0b207c85ae593d39501696aad.tar.gz
chromium_src-0b847e38433afef0b207c85ae593d39501696aad.tar.bz2
Fix 'oops' in FontUtilsChromiumWin.cpp that was causing some layout tests to
crash. I failed to handle USCRIPT_INVALID_CODE as an input to GetFontFamilyForScript. That constant has a value of -1 which caused my array indexing to be unhappy. I also corrected the 'initialized' flag to be a static so that we would not waste cycles calling InitailizeScriptFontMap over-and-over again. Yikes! R=ojan Review URL: http://codereview.chromium.org/13722 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6744 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--webkit/port/platform/graphics/chromium/FontUtilsChromiumWin.cpp7
-rw-r--r--webkit/tools/layout_tests/test_lists/tests_fixable.txt5
2 files changed, 4 insertions, 8 deletions
diff --git a/webkit/port/platform/graphics/chromium/FontUtilsChromiumWin.cpp b/webkit/port/platform/graphics/chromium/FontUtilsChromiumWin.cpp
index ed40bf3..184fb6f 100644
--- a/webkit/port/platform/graphics/chromium/FontUtilsChromiumWin.cpp
+++ b/webkit/port/platform/graphics/chromium/FontUtilsChromiumWin.cpp
@@ -68,8 +68,7 @@ void InitializeScriptFontMap(ScriptToFontMap& scriptFontMap)
// For USCRIPT_COMMON, we map blocks to scripts when
// that makes sense.
};
-
- // Cannot recover from OOM so that there's no need to check.
+
for (int i = 0; i < sizeof(fontMap) / sizeof(fontMap[0]); ++i)
scriptFontMap[fontMap[i].script] = fontMap[i].family;
@@ -143,11 +142,13 @@ typedef HashMap<String, FontData*> FontDataCache;
const UChar* GetFontFamilyForScript(UScriptCode script,
GenericFamilyType generic) {
static ScriptToFontMap scriptFontMap;
- bool initialized = false;
+ static bool initialized = false;
if (!initialized) {
InitializeScriptFontMap(scriptFontMap);
initialized = true;
}
+ if (script == USCRIPT_INVALID_CODE)
+ return NULL;
ASSERT(script < USCRIPT_CODE_LIMIT);
return scriptFontMap[script];
}
diff --git a/webkit/tools/layout_tests/test_lists/tests_fixable.txt b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
index b609b12..d6d740b 100644
--- a/webkit/tools/layout_tests/test_lists/tests_fixable.txt
+++ b/webkit/tools/layout_tests/test_lists/tests_fixable.txt
@@ -2041,8 +2041,3 @@ DEBUG : LayoutTests/svg/dynamic-updates/SVGEllipseElement-dom-ry-attr.html = CRA
// TODO(tc): flaky.
LINUX : LayoutTests/fast/events/5056619.html = PASS FAIL
-
-// Started failing with r6667 I think. (darin)
-// Weirdly, this only crash on the release webkit builder.
-RELEASE : LayoutTests/fast/dom/javascript-url-crash-function.html = CRASH PASS
-RELEASE WIN : LayoutTests/http/tests/misc/font-face-in-multiple-segmented-faces.html = CRASH