From 460b1cd45a499378539cdce564d298c93314d66d Mon Sep 17 00:00:00 2001 From: Yuqian Li Date: Fri, 13 Apr 2018 12:36:43 -0400 Subject: Clone the xpos array in drawPosText It was a mistake to miss it... This fixes GM bigtext and almost every GM that uses drawPosText in the t8888 mode. Bug: skia: Change-Id: I32d6cc1fd1cde5c8b7caaad9eb3ba6a1706c22a6 Reviewed-on: https://skia-review.googlesource.com/121328 Reviewed-by: Brian Salomon Commit-Queue: Yuqian Li --- src/core/SkThreadedBMPDevice.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/SkThreadedBMPDevice.cpp b/src/core/SkThreadedBMPDevice.cpp index 99aa608865..0cff9681c3 100644 --- a/src/core/SkThreadedBMPDevice.cpp +++ b/src/core/SkThreadedBMPDevice.cpp @@ -199,9 +199,10 @@ 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); SkRect drawBounds = SkRectPriv::MakeLargest(); // TODO tighter drawBounds fQueue.push(drawBounds, [=](SkArenaAlloc*, const DrawState& ds, const SkIRect& tileBounds){ - TileDraw(ds, tileBounds).drawPosText(clonedText, len, xpos, scalarsPerPos, offset, + TileDraw(ds, tileBounds).drawPosText(clonedText, len, clonedXpos, scalarsPerPos, offset, paint, &surfaceProps()); }); } -- cgit v1.2.3