Fix bug #4415576 Gmail text looks broken
- pass correct "contextCount" when needed Change-Id: I56ebd9486e99e6ca5a3973ec403cf1ced874b4c3
This commit is contained in:
@@ -777,7 +777,7 @@ public:
|
||||
|
||||
jint count = end - start;
|
||||
sp<TextLayoutCacheValue> value = gTextLayoutCache.getValue(
|
||||
paint, textArray, start, count, count, flags);
|
||||
paint, textArray, start, count, end, flags);
|
||||
if (value == NULL) {
|
||||
LOGE("drawTextWithGlyphs -- cannot get Cache value");
|
||||
return ;
|
||||
|
||||
@@ -335,8 +335,8 @@ public:
|
||||
const jchar* textArray = env->GetCharArrayElements(text, NULL);
|
||||
jfloat result = 0;
|
||||
#if RTL_USE_HARFBUZZ
|
||||
TextLayout::getTextRunAdvances(paint, textArray, index, count, count, paint->getFlags(),
|
||||
NULL /* dont need all advances */, result);
|
||||
TextLayout::getTextRunAdvances(paint, textArray, index, count, textLength,
|
||||
paint->getFlags(), NULL /* dont need all advances */, result);
|
||||
#else
|
||||
// we double count, since measureText wants a byteLength
|
||||
SkScalar width = paint->measureText(textArray + index, count << 1);
|
||||
@@ -362,8 +362,8 @@ public:
|
||||
jfloat width = 0;
|
||||
|
||||
#if RTL_USE_HARFBUZZ
|
||||
TextLayout::getTextRunAdvances(paint, textArray, 0, count, count, paint->getFlags(),
|
||||
NULL /* dont need all advances */, width);
|
||||
TextLayout::getTextRunAdvances(paint, textArray, start, count, end,
|
||||
paint->getFlags(), NULL /* dont need all advances */, width);
|
||||
#else
|
||||
|
||||
width = SkScalarToFloat(paint->measureText(textArray + start, count << 1));
|
||||
@@ -381,8 +381,8 @@ public:
|
||||
size_t textLength = env->GetStringLength(text);
|
||||
jfloat width = 0;
|
||||
#if RTL_USE_HARFBUZZ
|
||||
TextLayout::getTextRunAdvances(paint, textArray, 0, textLength, textLength, paint->getFlags(),
|
||||
NULL /* dont need all advances */, width);
|
||||
TextLayout::getTextRunAdvances(paint, textArray, 0, textLength, textLength,
|
||||
paint->getFlags(), NULL /* dont need all advances */, width);
|
||||
#else
|
||||
width = SkScalarToFloat(paint->measureText(textArray, textLength << 1));
|
||||
#endif
|
||||
@@ -396,8 +396,8 @@ public:
|
||||
#if RTL_USE_HARFBUZZ
|
||||
jfloat totalAdvance;
|
||||
|
||||
TextLayout::getTextRunAdvances(paint, text, 0, count, count, paint->getFlags(),
|
||||
widthsArray, totalAdvance);
|
||||
TextLayout::getTextRunAdvances(paint, text, 0, count, count,
|
||||
paint->getFlags(), widthsArray, totalAdvance);
|
||||
#else
|
||||
SkScalar* scalarArray = (SkScalar*)widthsArray;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user