diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-10 22:28:46 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-10 22:28:46 +0000 |
commit | 0b847e38433afef0b207c85ae593d39501696aad (patch) | |
tree | c6342497e3086e2661a753011bfe234d51ec985d | |
parent | 514411fcb4657f575eeb3e39a9056478a28306a0 (diff) | |
download | chromium_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.cpp | 7 | ||||
-rw-r--r-- | webkit/tools/layout_tests/test_lists/tests_fixable.txt | 5 |
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 |