Fix regression in CFX_SkiaDeviceDriver::PaintStroke().
The refactoring in https://pdfium-review.googlesource.com/70738
allocated too little memory. The original code allocated too much. This
CL gets it just right.
Bug: chromium:1099990
Change-Id: I6c413207344d3eb41f9b324879ed3e0818e2e9f0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70917
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp
index bd166ca..3dbb494 100644
--- a/core/fxge/skia/fx_skia_device.cpp
+++ b/core/fxge/skia/fx_skia_device.cpp
@@ -1582,7 +1582,7 @@
std::min(deviceUnits[0].length(), deviceUnits[1].length()));
if (!pGraphState->m_DashArray.empty()) {
size_t count = (pGraphState->m_DashArray.size() + 1) / 2;
- std::vector<SkScalar> intervals(count);
+ std::vector<SkScalar> intervals(count * 2);
// Set dash pattern
for (size_t i = 0; i < count; i++) {
float on = pGraphState->m_DashArray[i * 2];
@@ -1595,8 +1595,8 @@
intervals[i * 2] = on;
intervals[i * 2 + 1] = off;
}
- spaint->setPathEffect(SkDashPathEffect::Make(intervals.data(), count * 2,
- pGraphState->m_DashPhase));
+ spaint->setPathEffect(SkDashPathEffect::Make(
+ intervals.data(), intervals.size(), pGraphState->m_DashPhase));
}
spaint->setStyle(SkPaint::kStroke_Style);
spaint->setAntiAlias(true);