summaryrefslogtreecommitdiffstats
path: root/skia/fix_for_1186198.diff
diff options
context:
space:
mode:
authorinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-27 00:09:42 +0000
committerinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-27 00:09:42 +0000
commitae2c20f398933a9e86c387dcc465ec0f71065ffc (patch)
treede668b1411e2ee0b4e49b6d8f8b68183134ac990 /skia/fix_for_1186198.diff
parent09911bf300f1a419907a9412154760efd0b7abc3 (diff)
downloadchromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.zip
chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.gz
chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.bz2
Add skia to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/fix_for_1186198.diff')
-rw-r--r--skia/fix_for_1186198.diff38
1 files changed, 38 insertions, 0 deletions
diff --git a/skia/fix_for_1186198.diff b/skia/fix_for_1186198.diff
new file mode 100644
index 0000000..6158f59
--- /dev/null
+++ b/skia/fix_for_1186198.diff
@@ -0,0 +1,38 @@
+Index: sgl/SkEdge.cpp
+===================================================================
+--- sgl/SkEdge.cpp (revision 42965)
++++ sgl/SkEdge.cpp (working copy)
+@@ -17,6 +17,7 @@
+
+ #include "SkEdge.h"
+ #include "SkFDot6.h"
++#include <limits>
+
+ /*
+ In setLine, setQuadratic, setCubic, the first thing we do is to convert
+@@ -76,8 +77,23 @@
+
+ fX = SkFDot6ToFixed(x0 + SkFixedMul(slope, (32 - y0) & 63)); // + SK_Fixed1/2
+ fDX = slope;
+- fFirstY = SkToS16(top);
+- fLastY = SkToS16(bot - 1);
++ fFirstY = (int16_t)(top); // inlined skToS16()
++ if (top != (long)fFirstY) {
++ if (fFirstY < top) {
++ fFirstY = std::numeric_limits<int16_t>::max();
++ } else {
++ fFirstY = std::numeric_limits<int16_t>::min();
++ }
++ fX -= fDX * (top - (long)fFirstY);
++ }
++ fLastY = (int16_t)(bot - 1); // inlined SkToS16()
++ if (bot-1 != (long)fLastY) {
++ if (fLastY < bot-1) {
++ fLastY = std::numeric_limits<int16_t>::max();
++ } else {
++ fLastY = std::numeric_limits<int16_t>::min();
++ }
++ }
+ fCurveCount = 0;
+ fWinding = SkToS8(winding);
+ fCurveShift = 0;