Good catch. This sort of thing would have been very hard to track down
in a real app.
On Sun, May 29, 2011 at 4:53 PM, Marcus Meissner <marcus(a)jet.franken.de> wrote:
> Hi,
>
> CID 1147
> We get 3 points, not 1 ... and also need to pass on 3 points.
>
> Ciao, Marcus
> ---
> dlls/gdiplus/matrix.c | 12 +++++++-----
> 1 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/dlls/gdiplus/matrix.c b/dlls/gdiplus/matrix.c
> index 1035cc2..acfe989 100644
> --- a/dlls/gdiplus/matrix.c
> +++ b/dlls/gdiplus/matrix.c
> @@ -105,7 +105,8 @@ GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint
> GpMatrix **matrix)
> {
> GpRectF rectF;
> - GpPointF ptF;
> + GpPointF ptF[3];
> + int i;
>
> TRACE("(%p, %p, %p)\n", rect, pt, matrix);
>
> @@ -114,10 +115,11 @@ GpStatus WINGDIPAPI GdipCreateMatrix3I(GDIPCONST GpRect *rect, GDIPCONST GpPoint
> rectF.Width = (REAL)rect->Width;
> rectF.Height = (REAL)rect->Height;
>
> - ptF.X = (REAL)pt->X;
> - ptF.Y = (REAL)pt->Y;
> -
> - return GdipCreateMatrix3(&rectF, &ptF, matrix);
> + for (i = 0; i < 3; i++) {
> + ptF[i].X = (REAL)pt[i].X;
> + ptF[i].Y = (REAL)pt[i].Y;
> + }
> + return GdipCreateMatrix3(&rectF, ptF, matrix);
> }
>
> GpStatus WINGDIPAPI GdipCloneMatrix(GpMatrix *matrix, GpMatrix **clone)
> --
> 1.7.3.4
>
>
>
>