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 <jun.j.tian@intel.com>
Signed-off-by: Jackie Wu <jackie.wu@intel.com>
Signed-off-by: Liang Chen <liang.l.chen@intel.com>
Signed-off-by: Panfeng Chang <panfengx.chang@intel.com>
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 @@
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;