Fix for bug 15252902 native crash in Minikin

This is a fix for bug 15252902 "Crash observed on keep launch or
existing youtube app after playing video". It was doing the test for a
null font after trying to resolve the font in a cache, which caused a
crash when there was no font for the run. This patch just tests before
cache lookup.

Change-Id: Iee41f7ce6b69cb09438462b6aaa916f242da7b77
This commit is contained in:
Raph Levien
2014-05-26 08:24:36 -07:00
parent ddfa014d55
commit 9c5d659d5f

View File

@@ -615,13 +615,13 @@ void Layout::doLayoutRun(const uint16_t* buf, size_t start, size_t count, size_t
float y = 0;
for (size_t run_ix = 0; run_ix < items.size(); run_ix++) {
FontCollection::Run &run = items[run_ix];
if (run.font == NULL) {
ALOGE("no font for run starting u+%04x length %d", buf[run.start], run.end - run.start);
continue;
}
int font_ix = findFace(run.font, ctx);
ctx->paint.font = mFaces[font_ix];
hb_font_t* hbFont = ctx->hbFonts[font_ix];
if (ctx->paint.font == NULL) {
// TODO: should log what went wrong
continue;
}
#ifdef VERBOSE
std::cout << "Run " << run_ix << ", font " << font_ix <<
" [" << run.start << ":" << run.end << "]" << std::endl;