aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapProcState_matrixProcs.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-18 20:16:18 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2012-04-18 20:16:18 +0000
commita4b0d139e34e9d06bff0828adfb66fdfed9141c4 (patch)
tree8ef881150ff4c9aa7c414d43cbe661707b27c162 /src/core/SkBitmapProcState_matrixProcs.cpp
parentaeb07864052fde0acba0ae1a42a01db3407f1f6e (diff)
speculative fix for debug/release problem on windows with mirror bitmaps
Review URL: https://codereview.appspot.com/6063051 git-svn-id: http://skia.googlecode.com/svn/trunk@3728 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkBitmapProcState_matrixProcs.cpp')
-rw-r--r--src/core/SkBitmapProcState_matrixProcs.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp
index 9a15ad2098..15e7bebbe7 100644
--- a/src/core/SkBitmapProcState_matrixProcs.cpp
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp
@@ -93,6 +93,12 @@ static inline U16CPU fixed_repeat(SkFixed x)
return x & 0xFFFF;
}
+// Visual Studio 2010 (MSC_VER=1600) optimizes bit-shift code incorrectly.
+// See http://code.google.com/p/skia/issues/detail?id=472
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#pragma optimize("", off)
+#endif
+
static inline U16CPU fixed_mirror(SkFixed x)
{
SkFixed s = x << 15 >> 31;
@@ -100,6 +106,10 @@ static inline U16CPU fixed_mirror(SkFixed x)
return (x ^ s) & 0xFFFF;
}
+#if defined(_MSC_VER) && (_MSC_VER >= 1600)
+#pragma optimize("", on)
+#endif
+
static SkBitmapProcState::FixedTileProc choose_tile_proc(unsigned m)
{
if (SkShader::kClamp_TileMode == m)