Module: wine Branch: master Commit: 84d2cf02ed2dbe19c0a67e71395d461157e17e58 URL: https://source.winehq.org/git/wine.git/?a=commit;h=84d2cf02ed2dbe19c0a67e713...
Author: Shawn M. Chapla schapla@codeweavers.com Date: Wed Aug 26 19:21:42 2020 -0400
gdi32: Pass correct pointer to PolyDraw during EMR_POLYDRAW playback.
Signed-off-by: Shawn M. Chapla schapla@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/enhmetafile.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c index fc3389ff23..4d6531644b 100644 --- a/dlls/gdi32/enhmetafile.c +++ b/dlls/gdi32/enhmetafile.c @@ -1622,9 +1622,12 @@ BOOL WINAPI PlayEnhMetaFileRecord( case EMR_POLYDRAW: { const EMRPOLYDRAW *lpPolyDraw = (const EMRPOLYDRAW *)mr; + + /* NB abTypes array doesn't start at lpPolyDraw->abTypes. It's actually + lpPolyDraw->aptl + lpPolyDraw->cptl. */ PolyDraw( hdc, (const POINT*)lpPolyDraw->aptl, - lpPolyDraw->abTypes, + (BYTE*)(lpPolyDraw->aptl + lpPolyDraw->cptl), (INT)lpPolyDraw->cptl );
break;