<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[23935] trunk/WebCore</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/23935">23935</a></dd>
<dt>Author</dt> <dd>weinig</dd>
<dt>Date</dt> <dd>2007-07-02 16:20:41 -0700 (Mon, 02 Jul 2007)</dd>
</dl>

<h3>Log Message</h3>
<pre>        Reviewed by Darin.

        Sixth round of fixes for implicit 64-32 bit conversion errors.
        &lt;rdar://problem/5292262&gt;

        Use new narrowPrecisionToFloat() and narrowPrecisionToCGFloat() where
        appropriate.

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setShadow):
        (WebCore::CanvasRenderingContext2D::applyShadow):
        * html/CanvasStyle.cpp:
        (WebCore::CanvasStyle::applyStrokeColor):
        (WebCore::CanvasStyle::applyFillColor):
        * ksvg2/svg/SVGAngle.cpp:
        * ksvg2/svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::parseKeyNumbers):
        (WebCore::parseKeySplines):
        (WebCore::SVGAnimationElement::handleTimerEvent):
        (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
        * ksvg2/svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * ksvg2/svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::buildGradient):
        * platform/graphics/cg/AffineTransformCG.cpp:
        (WebCore::AffineTransform::AffineTransform):
        (WebCore::AffineTransform::setMatrix):
        (WebCore::AffineTransform::map):
        (WebCore::AffineTransform::setA):
        (WebCore::AffineTransform::setB):
        (WebCore::AffineTransform::setC):
        (WebCore::AffineTransform::setD):
        (WebCore::AffineTransform::setE):
        (WebCore::AffineTransform::setF):
        (WebCore::AffineTransform::scale):
        (WebCore::AffineTransform::rotate):
        (WebCore::AffineTransform::translate):
        (WebCore::AffineTransform::shear):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCorehtmlCanvasRenderingContext2Dcpp">trunk/WebCore/html/CanvasRenderingContext2D.cpp</a></li>
<li><a href="#trunkWebCorehtmlCanvasStylecpp">trunk/WebCore/html/CanvasStyle.cpp</a></li>
<li><a href="#trunkWebCoreksvg2svgSVGAnglecpp">trunk/WebCore/ksvg2/svg/SVGAngle.cpp</a></li>
<li><a href="#trunkWebCoreksvg2svgSVGAnimationElementcpp">trunk/WebCore/ksvg2/svg/SVGAnimationElement.cpp</a></li>
<li><a href="#trunkWebCoreksvg2svgSVGPatternElementcpp">trunk/WebCore/ksvg2/svg/SVGPatternElement.cpp</a></li>
<li><a href="#trunkWebCoreksvg2svgSVGRadialGradientElementcpp">trunk/WebCore/ksvg2/svg/SVGRadialGradientElement.cpp</a></li>
<li><a href="#trunkWebCoreplatformgraphicscgAffineTransformCGcpp">trunk/WebCore/platform/graphics/cg/AffineTransformCG.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/ChangeLog        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -1,3 +1,44 @@
</span><ins>+2007-07-02  Sam Weinig  &lt;sam@webkit.org&gt;
+
+        Reviewed by Darin.
+
+        Sixth round of fixes for implicit 64-32 bit conversion errors.
+        &lt;rdar://problem/5292262&gt;
+
+        Use new narrowPrecisionToFloat() and narrowPrecisionToCGFloat() where
+        appropriate.
+
+        * html/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::setShadow):
+        (WebCore::CanvasRenderingContext2D::applyShadow):
+        * html/CanvasStyle.cpp:
+        (WebCore::CanvasStyle::applyStrokeColor):
+        (WebCore::CanvasStyle::applyFillColor):
+        * ksvg2/svg/SVGAngle.cpp:
+        * ksvg2/svg/SVGAnimationElement.cpp:
+        (WebCore::SVGAnimationElement::parseKeyNumbers):
+        (WebCore::parseKeySplines):
+        (WebCore::SVGAnimationElement::handleTimerEvent):
+        (WebCore::SVGAnimationElement::updateAnimatedValueForElapsedSeconds):
+        * ksvg2/svg/SVGPatternElement.cpp:
+        (WebCore::SVGPatternElement::buildPattern):
+        * ksvg2/svg/SVGRadialGradientElement.cpp:
+        (WebCore::SVGRadialGradientElement::buildGradient):
+        * platform/graphics/cg/AffineTransformCG.cpp:
+        (WebCore::AffineTransform::AffineTransform):
+        (WebCore::AffineTransform::setMatrix):
+        (WebCore::AffineTransform::map):
+        (WebCore::AffineTransform::setA):
+        (WebCore::AffineTransform::setB):
+        (WebCore::AffineTransform::setC):
+        (WebCore::AffineTransform::setD):
+        (WebCore::AffineTransform::setE):
+        (WebCore::AffineTransform::setF):
+        (WebCore::AffineTransform::scale):
+        (WebCore::AffineTransform::rotate):
+        (WebCore::AffineTransform::translate):
+        (WebCore::AffineTransform::shear):
+
</ins><span class="cx"> 2007-07-02  John Sullivan  &lt;sullivan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         * page/mac/WebCoreFrameBridge.mm:
</span></span></pre></div>
<a id="trunkWebCorehtmlCanvasRenderingContext2Dcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/CanvasRenderingContext2D.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/CanvasRenderingContext2D.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/html/CanvasRenderingContext2D.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -659,9 +659,9 @@
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">     RGBA32 rgba = CSSParser::parseColor(color);
</span><span class="cx">     const CGFloat components[4] = {
</span><del>-        ((rgba &gt;&gt; 16) &amp; 0xFF) / 255.0,
-        ((rgba &gt;&gt; 8) &amp; 0xFF) / 255.0,
-        (rgba &amp; 0xFF) / 255.0,
</del><ins>+        ((rgba &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+        ((rgba &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+        (rgba &amp; 0xFF) / 255.0f,
</ins><span class="cx">         alpha
</span><span class="cx">     };
</span><span class="cx">     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
</span><span class="lines">@@ -749,10 +749,10 @@
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">     RGBA32 rgba = state().m_shadowColor.isEmpty() ? 0 : CSSParser::parseColor(state().m_shadowColor);
</span><span class="cx">     const CGFloat components[4] = {
</span><del>-        ((rgba &gt;&gt; 16) &amp; 0xFF) / 255.0,
-        ((rgba &gt;&gt; 8) &amp; 0xFF) / 255.0,
-        (rgba &amp; 0xFF) / 255.0,
-        ((rgba &gt;&gt; 24) &amp; 0xFF) / 255.0
</del><ins>+        ((rgba &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+        ((rgba &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+        (rgba &amp; 0xFF) / 255.0f,
+        ((rgba &gt;&gt; 24) &amp; 0xFF) / 255.0f
</ins><span class="cx">     };
</span><span class="cx">     CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
</span><span class="cx">     CGColorRef color = CGColorCreate(colorSpace, components);
</span></span></pre></div>
<a id="trunkWebCorehtmlCanvasStylecpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/html/CanvasStyle.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/html/CanvasStyle.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/html/CanvasStyle.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -95,10 +95,10 @@
</span><span class="cx">             // FIXME: Do this through platform-independent GraphicsContext API.
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">             CGContextSetRGBStrokeColor(context-&gt;platformContext(),
</span><del>-                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0,
-                (color &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 24) &amp; 0xFF) / 255.0);
</del><ins>+                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+                (color &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 24) &amp; 0xFF) / 255.0f);
</ins><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx">             p-&gt;setPen(QPen(QColor(QRgb(color))));
</span><span class="cx"> #endif
</span><span class="lines">@@ -109,9 +109,9 @@
</span><span class="cx">             // FIXME: Do this through platform-independent GraphicsContext API.
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">             CGContextSetRGBStrokeColor(context-&gt;platformContext(),
</span><del>-                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0,
-                (color &amp; 0xFF) / 255.0,
</del><ins>+                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+                (color &amp; 0xFF) / 255.0f,
</ins><span class="cx">                 m_alpha);
</span><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx">             QColor clr = QColor(QRgb(color));
</span><span class="lines">@@ -171,10 +171,10 @@
</span><span class="cx">             // FIXME: Do this through platform-independent GraphicsContext API.
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">             CGContextSetRGBFillColor(context-&gt;platformContext(),
</span><del>-                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0,
-                (color &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 24) &amp; 0xFF) / 255.0);
</del><ins>+                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+                (color &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 24) &amp; 0xFF) / 255.0f);
</ins><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx">             p-&gt;setBrush(QColor(QRgb(color)));
</span><span class="cx"> #endif
</span><span class="lines">@@ -185,9 +185,9 @@
</span><span class="cx">             // FIXME: Do this through platform-independent GraphicsContext API.
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx">             CGContextSetRGBFillColor(context-&gt;platformContext(),
</span><del>-                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0,
-                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0,
-                (color &amp; 0xFF) / 255.0,
</del><ins>+                ((color &gt;&gt; 16) &amp; 0xFF) / 255.0f,
+                ((color &gt;&gt; 8) &amp; 0xFF) / 255.0f,
+                (color &amp; 0xFF) / 255.0f,
</ins><span class="cx">                 m_alpha);
</span><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx">             QColor clr = QColor(QRgb(color));
</span></span></pre></div>
<a id="trunkWebCoreksvg2svgSVGAnglecpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ksvg2/svg/SVGAngle.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ksvg2/svg/SVGAngle.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/ksvg2/svg/SVGAngle.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -28,8 +28,8 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><del>-const double deg2rad = 0.017453292519943295769; // pi/180
-const double deg2grad = 400.0 / 360.0;
</del><ins>+const float deg2rad = 0.017453292519943295769; // pi/180
+const float deg2grad = 400.0 / 360.0;
</ins><span class="cx"> 
</span><span class="cx"> #define rad2grad deg2grad / deg2rad
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkWebCoreksvg2svgSVGAnimationElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ksvg2/svg/SVGAnimationElement.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ksvg2/svg/SVGAnimationElement.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/ksvg2/svg/SVGAnimationElement.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -27,16 +27,17 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;CSSPropertyNames.h&quot;
</span><span class="cx"> #include &quot;Document.h&quot;
</span><del>-#include &quot;TimeScheduler.h&quot;
</del><ins>+#include &quot;FloatConversion.h&quot;
+#include &quot;ksvgcssproperties.h&quot;
</ins><span class="cx"> #include &quot;SVGParserUtilities.h&quot;
</span><span class="cx"> #include &quot;SVGSVGElement.h&quot;
</span><span class="cx"> #include &quot;SVGURIReference.h&quot;
</span><ins>+#include &quot;TimeScheduler.h&quot;
</ins><span class="cx"> #include &quot;XLinkNames.h&quot;
</span><del>-#include &quot;ksvgcssproperties.h&quot;
</del><span class="cx"> #include &lt;float.h&gt;
</span><span class="cx"> #include &lt;math.h&gt;
</span><ins>+#include &lt;wtf/MathExtras.h&gt;
</ins><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><del>-#include &lt;wtf/MathExtras.h&gt;
</del><span class="cx"> 
</span><span class="cx"> using namespace std;
</span><span class="cx"> 
</span><span class="lines">@@ -118,7 +119,7 @@
</span><span class="cx"> 
</span><span class="cx"> void SVGAnimationElement::parseKeyNumbers(Vector&lt;float&gt;&amp; keyNumbers, const String&amp; value)
</span><span class="cx"> {
</span><del>-    double number = 0.f;
</del><ins>+    double number = 0.0;
</ins><span class="cx">     
</span><span class="cx">     const UChar* ptr = value.characters();
</span><span class="cx">     const UChar* end = ptr + value.length();
</span><span class="lines">@@ -126,7 +127,7 @@
</span><span class="cx">     while (ptr &lt; end) {
</span><span class="cx">         if (!parseNumber(ptr, end, number, false))
</span><span class="cx">             return;
</span><del>-        keyNumbers.append(number);
</del><ins>+        keyNumbers.append(narrowPrecisionToFloat(number));
</ins><span class="cx">         
</span><span class="cx">         if (!skipOptionalSpaces(ptr, end) || *ptr != ';')
</span><span class="cx">             return;
</span><span class="lines">@@ -161,7 +162,7 @@
</span><span class="cx"> 
</span><span class="cx"> static void parseKeySplines(Vector&lt;SVGAnimationElement::KeySpline&gt;&amp; keySplines, const String&amp; value)
</span><span class="cx"> {
</span><del>-    double number = 0.f;
</del><ins>+    double number = 0.0;
</ins><span class="cx">     SVGAnimationElement::KeySpline keySpline;
</span><span class="cx">     
</span><span class="cx">     const UChar* ptr = value.characters();
</span><span class="lines">@@ -170,16 +171,16 @@
</span><span class="cx">     while (ptr &lt; end) {
</span><span class="cx">         if (!(parseNumber(ptr, end, number, false) &amp;&amp; skipOptionalSpaces(ptr, end)))
</span><span class="cx">             return;
</span><del>-        keySpline.control1.setX(number);
</del><ins>+        keySpline.control1.setX(narrowPrecisionToFloat(number));
</ins><span class="cx">         if (!(parseNumber(ptr, end, number, false) &amp;&amp; skipOptionalSpaces(ptr, end)))
</span><span class="cx">             return;
</span><del>-        keySpline.control1.setY(number);
</del><ins>+        keySpline.control1.setY(narrowPrecisionToFloat(number));
</ins><span class="cx">         if (!(parseNumber(ptr, end, number, false) &amp;&amp; skipOptionalSpaces(ptr, end)))
</span><span class="cx">             return;
</span><del>-        keySpline.control2.setX(number);
</del><ins>+        keySpline.control2.setX(narrowPrecisionToFloat(number));
</ins><span class="cx">         if (!parseNumber(ptr, end, number, false))
</span><span class="cx">             return;
</span><del>-        keySpline.control2.setY(number);
</del><ins>+        keySpline.control2.setY(narrowPrecisionToFloat(number));
</ins><span class="cx">         keySplines.append(keySpline);
</span><span class="cx">         
</span><span class="cx">         if (!skipOptionalSpaces(ptr, end) || *ptr != ';')
</span><span class="lines">@@ -720,11 +721,11 @@
</span><span class="cx">     
</span><span class="cx">     unsigned valueIndex = 0;
</span><span class="cx">     float percentagePast = 0;
</span><del>-    calculateValueIndexAndPercentagePast(timePercentage, valueIndex, percentagePast);
</del><ins>+    calculateValueIndexAndPercentagePast(narrowPrecisionToFloat(timePercentage), valueIndex, percentagePast);
</ins><span class="cx">         
</span><span class="cx">     calculateFromAndToValues(animationMode, valueIndex);
</span><span class="cx">     
</span><del>-    updateAnimatedValue(animationMode, timePercentage, valueIndex, percentagePast);
</del><ins>+    updateAnimatedValue(animationMode, narrowPrecisionToFloat(timePercentage), valueIndex, percentagePast);
</ins><span class="cx">     
</span><span class="cx">     if (timePercentage == 1.0) {
</span><span class="cx">         if ((m_repeatCount &gt; 0 &amp;&amp; m_repetitions &lt; m_repeatCount - 1) || isIndefinite(m_repeatCount)) {
</span><span class="lines">@@ -751,7 +752,7 @@
</span><span class="cx">     if ((m_simpleDuration &lt;= 0.0 &amp;&amp; m_end &lt;= 0.0) || (isIndefinite(m_simpleDuration) &amp;&amp; m_end &lt;= 0.0))
</span><span class="cx">         return false; // Ignore dur=&quot;0&quot; or dur=&quot;-neg&quot;
</span><span class="cx">     
</span><del>-    float percentage = calculateTimePercentage(elapsedSeconds, m_begin, m_end, m_simpleDuration, m_repetitions);
</del><ins>+    double percentage = calculateTimePercentage(elapsedSeconds, m_begin, m_end, m_simpleDuration, m_repetitions);
</ins><span class="cx">     
</span><span class="cx">     if (percentage &lt;= 1.0 || connectedToTimer())
</span><span class="cx">         handleTimerEvent(elapsedSeconds, percentage);
</span></span></pre></div>
<a id="trunkWebCoreksvg2svgSVGPatternElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ksvg2/svg/SVGPatternElement.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ksvg2/svg/SVGPatternElement.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/ksvg2/svg/SVGPatternElement.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;AffineTransform.h&quot;
</span><span class="cx"> #include &quot;Document.h&quot;
</span><ins>+#include &quot;FloatConversion.h&quot;
</ins><span class="cx"> #include &quot;GraphicsContext.h&quot;
</span><span class="cx"> #include &quot;ImageBuffer.h&quot;
</span><span class="cx"> #include &quot;PatternAttributes.h&quot;
</span><span class="lines">@@ -131,10 +132,10 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // Determine specified pattern size
</span><del>-    float xValue = attributes.x();
-    float yValue = attributes.y();
-    float widthValue = attributes.width();
-    float heightValue = attributes.height();
</del><ins>+    float xValue = narrowPrecisionToFloat(attributes.x());
+    float yValue = narrowPrecisionToFloat(attributes.y());
+    float widthValue = narrowPrecisionToFloat(attributes.width());
+    float heightValue = narrowPrecisionToFloat(attributes.height());
</ins><span class="cx"> 
</span><span class="cx">     if (attributes.boundingBoxMode()) {
</span><span class="cx">         xValue *= targetRect.width();
</span></span></pre></div>
<a id="trunkWebCoreksvg2svgSVGRadialGradientElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ksvg2/svg/SVGRadialGradientElement.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ksvg2/svg/SVGRadialGradientElement.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/ksvg2/svg/SVGRadialGradientElement.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -25,10 +25,11 @@
</span><span class="cx"> #if ENABLE(SVG)
</span><span class="cx"> #include &quot;SVGRadialGradientElement.h&quot;
</span><span class="cx"> 
</span><ins>+#include &quot;FloatConversion.h&quot;
</ins><span class="cx"> #include &quot;RadialGradientAttributes.h&quot;
</span><del>-#include &quot;SVGPaintServerRadialGradient.h&quot;
</del><span class="cx"> #include &quot;SVGLength.h&quot;
</span><span class="cx"> #include &quot;SVGNames.h&quot;
</span><ins>+#include &quot;SVGPaintServerRadialGradient.h&quot;
</ins><span class="cx"> #include &quot;SVGStopElement.h&quot;
</span><span class="cx"> #include &quot;SVGTransform.h&quot;
</span><span class="cx"> #include &quot;SVGTransformList.h&quot;
</span><span class="lines">@@ -95,7 +96,7 @@
</span><span class="cx">     radialGradient-&gt;setGradientTransform(attributes.gradientTransform());
</span><span class="cx">     radialGradient-&gt;setGradientCenter(FloatPoint(attributes.cx(), attributes.cy()));
</span><span class="cx">     radialGradient-&gt;setGradientFocal(FloatPoint(attributes.fx(), attributes.fy()));
</span><del>-    radialGradient-&gt;setGradientRadius(attributes.r());
</del><ins>+    radialGradient-&gt;setGradientRadius(narrowPrecisionToFloat(attributes.r()));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> RadialGradientAttributes SVGRadialGradientElement::collectGradientProperties() const
</span></span></pre></div>
<a id="trunkWebCoreplatformgraphicscgAffineTransformCGcpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/platform/graphics/cg/AffineTransformCG.cpp (23934 => 23935)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/platform/graphics/cg/AffineTransformCG.cpp        2007-07-02 23:05:50 UTC (rev 23934)
+++ trunk/WebCore/platform/graphics/cg/AffineTransformCG.cpp        2007-07-02 23:20:41 UTC (rev 23935)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.
</del><ins>+ * Copyright (C) 2005, 2006, 2007 Apple Inc.  All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(CG)
</span><span class="cx"> 
</span><ins>+#include &quot;FloatConversion.h&quot;
</ins><span class="cx"> #include &quot;FloatRect.h&quot;
</span><span class="cx"> #include &quot;IntRect.h&quot;
</span><span class="cx"> 
</span><span class="lines">@@ -42,7 +43,12 @@
</span><span class="cx"> 
</span><span class="cx"> AffineTransform::AffineTransform(double a, double b, double c, double d, double tx, double ty)
</span><span class="cx"> {
</span><del>-    m_transform = CGAffineTransformMake(a,b,c,d,tx,ty);
</del><ins>+    m_transform = CGAffineTransformMake(narrowPrecisionToCGFloat(a),
+                                        narrowPrecisionToCGFloat(b),
+                                        narrowPrecisionToCGFloat(c),
+                                        narrowPrecisionToCGFloat(d),
+                                        narrowPrecisionToCGFloat(tx),
+                                        narrowPrecisionToCGFloat(ty));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AffineTransform::AffineTransform(CGAffineTransform t)
</span><span class="lines">@@ -52,12 +58,17 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setMatrix(double a, double b, double c, double d, double tx, double ty)
</span><span class="cx"> {
</span><del>-    m_transform = CGAffineTransformMake(a,b,c,d,tx,ty);
</del><ins>+    m_transform = CGAffineTransformMake(narrowPrecisionToCGFloat(a),
+                                        narrowPrecisionToCGFloat(b),
+                                        narrowPrecisionToCGFloat(c),
+                                        narrowPrecisionToCGFloat(d),
+                                        narrowPrecisionToCGFloat(tx),
+                                        narrowPrecisionToCGFloat(ty));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::map(double x, double y, double *x2, double *y2) const
</span><span class="cx"> {
</span><del>-    CGPoint result = CGPointApplyAffineTransform(CGPointMake(x,y),m_transform);
</del><ins>+    CGPoint result = CGPointApplyAffineTransform(CGPointMake(narrowPrecisionToCGFloat(x), narrowPrecisionToCGFloat(y)), m_transform);
</ins><span class="cx">     *x2 = result.x;
</span><span class="cx">     *y2 = result.y;
</span><span class="cx"> }
</span><span class="lines">@@ -84,7 +95,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setA(double a)
</span><span class="cx"> {
</span><del>-    m_transform.a = a;
</del><ins>+    m_transform.a = narrowPrecisionToCGFloat(a);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double AffineTransform::b() const
</span><span class="lines">@@ -94,7 +105,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setB(double b)
</span><span class="cx"> {
</span><del>-    m_transform.b = b;
</del><ins>+    m_transform.b = narrowPrecisionToCGFloat(b);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double AffineTransform::c() const
</span><span class="lines">@@ -104,7 +115,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setC(double c)
</span><span class="cx"> {
</span><del>-    m_transform.c = c;
</del><ins>+    m_transform.c = narrowPrecisionToCGFloat(c);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double AffineTransform::d() const
</span><span class="lines">@@ -114,7 +125,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setD(double d)
</span><span class="cx"> {
</span><del>-    m_transform.d = d;
</del><ins>+    m_transform.d = narrowPrecisionToCGFloat(d);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double AffineTransform::e() const
</span><span class="lines">@@ -124,7 +135,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setE(double e)
</span><span class="cx"> {
</span><del>-    m_transform.tx = e;
</del><ins>+    m_transform.tx = narrowPrecisionToCGFloat(e);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> double AffineTransform::f() const
</span><span class="lines">@@ -134,7 +145,7 @@
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::setF(double f)
</span><span class="cx"> {
</span><del>-    m_transform.ty = f;
</del><ins>+    m_transform.ty = narrowPrecisionToCGFloat(f);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void AffineTransform::reset()
</span><span class="lines">@@ -144,26 +155,26 @@
</span><span class="cx"> 
</span><span class="cx"> AffineTransform &amp;AffineTransform::scale(double sx, double sy)
</span><span class="cx"> {
</span><del>-    m_transform = CGAffineTransformScale(m_transform, sx, sy);
</del><ins>+    m_transform = CGAffineTransformScale(m_transform, narrowPrecisionToCGFloat(sx), narrowPrecisionToCGFloat(sy));
</ins><span class="cx">     return *this;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AffineTransform &amp;AffineTransform::rotate(double d)
</span><span class="cx"> {
</span><del>-    m_transform = CGAffineTransformRotate(m_transform, d * deg2rad);
</del><ins>+    m_transform = CGAffineTransformRotate(m_transform, narrowPrecisionToCGFloat(d * deg2rad));
</ins><span class="cx">     return *this;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AffineTransform &amp;AffineTransform::translate(double tx, double ty)
</span><span class="cx"> {
</span><del>-    m_transform = CGAffineTransformTranslate(m_transform, tx, ty);
</del><ins>+    m_transform = CGAffineTransformTranslate(m_transform, narrowPrecisionToCGFloat(tx), narrowPrecisionToCGFloat(ty));
</ins><span class="cx">     return *this;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> AffineTransform &amp;AffineTransform::shear(double sx, double sy)
</span><span class="cx"> {
</span><del>-    CGAffineTransform shear = CGAffineTransformMake(1, sy, sx, 1, 0, 0);
-    m_transform = CGAffineTransformConcat(shear,m_transform);
</del><ins>+    CGAffineTransform shear = CGAffineTransformMake(1.0f, narrowPrecisionToCGFloat(sy), narrowPrecisionToCGFloat(sx), 1.0f, 0.0f, 0.0f);
+    m_transform = CGAffineTransformConcat(shear, m_transform);
</ins><span class="cx">     return *this;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>