Esme Povirk (@madewokherd) commented about dlls/gdiplus/pen.c:
-GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *dash, +GpStatus WINGDIPAPI GdipSetPenCompoundArray(GpPen *pen, GDIPCONST REAL *compoundarray, INT count) { - FIXME("(%p, %p, %i): stub\n", pen, dash, count); + REAL previousValue; + TRACE("(%p, %p, %i)\n", pen, compoundarray, count);
- if (!pen || !dash || count < 2 || count%2 == 1) + if(!pen || !compoundarray || count < 2 || count%2 == 1 || *compoundarray < 0.0 || *compoundarray > 1.0) return InvalidParameter; + previousValue = *compoundarray;
- return NotImplemented; + for(size_t i = 1; i<count; i++)
It's not typical Wine style to declare a variable inside a for statement. I think it's because of C89 compatibility. The type of the variable should match what it's comparing to, in this case count. As-is, this would be a signed/unsigned comparison. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1164#note_12392