aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuqian Li <liyuqian@google.com>2018-04-13 12:36:43 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-04-13 20:21:12 +0000
commit460b1cd45a499378539cdce564d298c93314d66d (patch)
tree87d87cca456e718fe8af836fe57d914063831dbc /src
parenteab2baa8a4417ef21979f511d5cad2334cd08d25 (diff)
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 <bsalomon@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkThreadedBMPDevice.cpp3
1 files changed, 2 insertions, 1 deletions
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());
});
}