From ee309635d23fa6a9b17be7b1d85dcb8ad065d6c8 Mon Sep 17 00:00:00 2001 From: Jun Tian Date: Tue, 11 Sep 2012 10:36:28 +0800 Subject: Fix CacheBitmap crash issue when using H/W UI rendering Avoid to access invalid index in CacheBitmap. That will cause the android SDK image cannot be booted up with H/W GL enabling. This patch is required by both ARM and x86 SDK system image. Change-Id: I705b7f06915a2338a2f94509486344bfd92b4bfb Signed-off-by: Jun Tian Signed-off-by: Jackie Wu Signed-off-by: Liang Chen Signed-off-by: Panfeng Chang --- libs/hwui/FontRenderer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index 5fdbc11..b51b1e1 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -617,7 +617,7 @@ void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyp uint32_t* retOriginX, uint32_t* retOriginY) { cachedGlyph->mIsValid = false; // If the glyph is too tall, don't cache it - if (glyph.fHeight + TEXTURE_BORDER_SIZE > mCacheLines[mCacheLines.size() - 1]->mMaxHeight) { + if (mCacheLines.size() != 0 && (glyph.fHeight + TEXTURE_BORDER_SIZE > mCacheLines[mCacheLines.size() - 1]->mMaxHeight)) { ALOGE("Font size to large to fit in cache. width, height = %i, %i", (int) glyph.fWidth, (int) glyph.fHeight); return; -- cgit v1.1