Please Valgrind by calling preConcat.
authorcommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 28 Mar 2014 14:29:23 +0000 (14:29 +0000)
committercommit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 28 Mar 2014 14:29:23 +0000 (14:29 +0000)
Valgrind's whining about m.setConcat(m, I).  That special cases into m =
m, which compiles into memcpy(&m, &m, sizeof(m)), and then Valgrind
decides that's not kosher because &m and &m overlap.  (memmove would
have been fine, but this is compiler generated code; not much we can do.)

preConcat gets us the same thing with an early can-we-noop check for I,
sidestepping the whole problem.

BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/214823003

git-svn-id: http://skia.googlecode.com/svn/trunk@13972 2bbb7eff-a529-9590-31e7-b0007b416f81

src/gpu/gl/GrGLProgram.h

index 8e2ae74..0a2a242 100644 (file)
@@ -114,7 +114,7 @@ public:
                                 0, SkIntToScalar(2) / fRenderTargetSize.fHeight, -SK_Scalar1,
                                 0, 0, SkMatrix::I()[8]);
             }
-            combined.setConcat(combined, fViewMatrix);
+            combined.preConcat(fViewMatrix);
             GrGLGetMatrix<Size>(destMatrix, combined);
         }
     };