gdiplus: Make an intermediate copy of the matrix.

Dmitry Timoshkov dmitry at codeweavers.com
Wed Dec 3 22:19:09 CST 2008


This patch fixes the problem reported in the bug 16318.
---
 dlls/gdiplus/brush.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/dlls/gdiplus/brush.c b/dlls/gdiplus/brush.c
index efcf31d..f9f6174 100644
--- a/dlls/gdiplus/brush.c
+++ b/dlls/gdiplus/brush.c
@@ -934,12 +934,16 @@ GpStatus WINGDIPAPI GdipGetTextureWrapMode(GpTexture *brush, GpWrapMode *wrapmod
 GpStatus WINGDIPAPI GdipMultiplyTextureTransform(GpTexture* brush,
     GDIPCONST GpMatrix *matrix, GpMatrixOrder order)
 {
+    GpMatrix matrix_copy;
+
     TRACE("(%p, %p, %d)\n", brush, matrix, order);
 
     if(!brush || !matrix)
         return InvalidParameter;
 
-    return GdipMultiplyMatrix(brush->transform, matrix, order);
+    matrix_copy = *matrix;
+
+    return GdipMultiplyMatrix(brush->transform, &matrix_copy, order);
 }
 
 /******************************************************************************
-- 
1.6.0.4




More information about the wine-patches mailing list