From dc323f27adbafade17e8f227c2d1512ccdc48ba8 Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 15 Apr 2021 14:04:15 -0400 Subject: Fix size calculation size is in bytes Fixes: 185429940 Test: builds Change-Id: Ib80eecd9ee8830877cfd9861d7126201d88d3f32 --- libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp | 5 ++--- libs/hwui/pipeline/skia/TransformCanvas.cpp | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp index 82814def6962..8ab9d2217a51 100644 --- a/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp +++ b/libs/hwui/pipeline/skia/SkiaRecordingCanvas.cpp @@ -60,12 +60,11 @@ void SkiaRecordingCanvas::punchHole(const SkRRect& rect) { // Add the marker annotation to allow HWUI to determine where the current // clip/transformation should be applied SkVector vector = rect.getSimpleRadii(); - const int dataSize = 2; - float data[dataSize]; + float data[2]; data[0] = vector.x(); data[1] = vector.y(); mRecorder.drawAnnotation(rect.rect(), HOLE_PUNCH_ANNOTATION.c_str(), - SkData::MakeWithCopy(data, dataSize)); + SkData::MakeWithCopy(data, 2 * sizeof(float))); // Clear the current rect within the layer itself SkPaint paint = SkPaint(); diff --git a/libs/hwui/pipeline/skia/TransformCanvas.cpp b/libs/hwui/pipeline/skia/TransformCanvas.cpp index 6bfbb0d270b7..a6e4c4cf9ca7 100644 --- a/libs/hwui/pipeline/skia/TransformCanvas.cpp +++ b/libs/hwui/pipeline/skia/TransformCanvas.cpp @@ -22,7 +22,7 @@ using namespace android::uirenderer::skiapipeline; void TransformCanvas::onDrawAnnotation(const SkRect& rect, const char* key, SkData* value) { if (HOLE_PUNCH_ANNOTATION == key) { - auto* rectParams = static_cast(value->data()); + auto* rectParams = reinterpret_cast(value->data()); float radiusX = rectParams[0]; float radiusY = rectParams[1]; SkRRect roundRect = SkRRect::MakeRectXY(rect, radiusX, radiusY); -- cgit v1.2.3-59-g8ed1b