Count the correct number of pos using text encoding.
Otherwise, the following will crash: out/ASAN/dm --config t8888 --verbose --src gm -m skbug_5321 Bug: skia: Change-Id: I9b1d3412b9695b0fbd8a9afb0e6d3ae7159aeee6 Reviewed-on: https://skia-review.googlesource.com/123750 Commit-Queue: Ben Wagner <bungeman@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> Auto-Submit: Yuqian Li <liyuqian@google.com>
This commit is contained in:
parent
c79e2d1551
commit
f695cf117f
@ -220,7 +220,7 @@ void SkThreadedBMPDevice::drawText(const void* text, size_t len, SkScalar x, SkS
|
||||
void SkThreadedBMPDevice::drawPosText(const void* text, size_t len, const SkScalar xpos[],
|
||||
int scalarsPerPos, const SkPoint& offset, const SkPaint& paint) {
|
||||
char* clonedText = this->cloneArray((const char*)text, len);
|
||||
SkScalar* clonedXpos = this->cloneArray(xpos, len * scalarsPerPos);
|
||||
SkScalar* clonedXpos = this->cloneArray(xpos, paint.countText(text, len) * scalarsPerPos);
|
||||
SkRect drawBounds = SkRectPriv::MakeLargest(); // TODO tighter drawBounds
|
||||
fQueue.push(drawBounds, [=](SkArenaAlloc*, const DrawState& ds, const SkIRect& tileBounds){
|
||||
TileDraw(ds, tileBounds).drawPosText(clonedText, len, clonedXpos, scalarsPerPos, offset,
|
||||
|
Loading…
Reference in New Issue
Block a user