<!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.
<rdar://problem/5292262>
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 <sam@webkit.org>
+
+ Reviewed by Darin.
+
+ Sixth round of fixes for implicit 64-32 bit conversion errors.
+ <rdar://problem/5292262>
+
+ 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 <sullivan@apple.com>
</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 >> 16) & 0xFF) / 255.0,
- ((rgba >> 8) & 0xFF) / 255.0,
- (rgba & 0xFF) / 255.0,
</del><ins>+ ((rgba >> 16) & 0xFF) / 255.0f,
+ ((rgba >> 8) & 0xFF) / 255.0f,
+ (rgba & 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 >> 16) & 0xFF) / 255.0,
- ((rgba >> 8) & 0xFF) / 255.0,
- (rgba & 0xFF) / 255.0,
- ((rgba >> 24) & 0xFF) / 255.0
</del><ins>+ ((rgba >> 16) & 0xFF) / 255.0f,
+ ((rgba >> 8) & 0xFF) / 255.0f,
+ (rgba & 0xFF) / 255.0f,
+ ((rgba >> 24) & 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->platformContext(),
</span><del>- ((color >> 16) & 0xFF) / 255.0,
- ((color >> 8) & 0xFF) / 255.0,
- (color & 0xFF) / 255.0,
- ((color >> 24) & 0xFF) / 255.0);
</del><ins>+ ((color >> 16) & 0xFF) / 255.0f,
+ ((color >> 8) & 0xFF) / 255.0f,
+ (color & 0xFF) / 255.0f,
+ ((color >> 24) & 0xFF) / 255.0f);
</ins><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx"> p->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->platformContext(),
</span><del>- ((color >> 16) & 0xFF) / 255.0,
- ((color >> 8) & 0xFF) / 255.0,
- (color & 0xFF) / 255.0,
</del><ins>+ ((color >> 16) & 0xFF) / 255.0f,
+ ((color >> 8) & 0xFF) / 255.0f,
+ (color & 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->platformContext(),
</span><del>- ((color >> 16) & 0xFF) / 255.0,
- ((color >> 8) & 0xFF) / 255.0,
- (color & 0xFF) / 255.0,
- ((color >> 24) & 0xFF) / 255.0);
</del><ins>+ ((color >> 16) & 0xFF) / 255.0f,
+ ((color >> 8) & 0xFF) / 255.0f,
+ (color & 0xFF) / 255.0f,
+ ((color >> 24) & 0xFF) / 255.0f);
</ins><span class="cx"> #elif PLATFORM(QT)
</span><span class="cx"> p->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->platformContext(),
</span><del>- ((color >> 16) & 0xFF) / 255.0,
- ((color >> 8) & 0xFF) / 255.0,
- (color & 0xFF) / 255.0,
</del><ins>+ ((color >> 16) & 0xFF) / 255.0f,
+ ((color >> 8) & 0xFF) / 255.0f,
+ (color & 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 "CSSPropertyNames.h"
</span><span class="cx"> #include "Document.h"
</span><del>-#include "TimeScheduler.h"
</del><ins>+#include "FloatConversion.h"
+#include "ksvgcssproperties.h"
</ins><span class="cx"> #include "SVGParserUtilities.h"
</span><span class="cx"> #include "SVGSVGElement.h"
</span><span class="cx"> #include "SVGURIReference.h"
</span><ins>+#include "TimeScheduler.h"
</ins><span class="cx"> #include "XLinkNames.h"
</span><del>-#include "ksvgcssproperties.h"
</del><span class="cx"> #include <float.h>
</span><span class="cx"> #include <math.h>
</span><ins>+#include <wtf/MathExtras.h>
</ins><span class="cx"> #include <wtf/Vector.h>
</span><del>-#include <wtf/MathExtras.h>
</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<float>& keyNumbers, const String& 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 < 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<SVGAnimationElement::KeySpline>& keySplines, const String& 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 < end) {
</span><span class="cx"> if (!(parseNumber(ptr, end, number, false) && 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) && 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) && 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 > 0 && m_repetitions < m_repeatCount - 1) || isIndefinite(m_repeatCount)) {
</span><span class="lines">@@ -751,7 +752,7 @@
</span><span class="cx"> if ((m_simpleDuration <= 0.0 && m_end <= 0.0) || (isIndefinite(m_simpleDuration) && m_end <= 0.0))
</span><span class="cx"> return false; // Ignore dur="0" or dur="-neg"
</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 <= 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 "AffineTransform.h"
</span><span class="cx"> #include "Document.h"
</span><ins>+#include "FloatConversion.h"
</ins><span class="cx"> #include "GraphicsContext.h"
</span><span class="cx"> #include "ImageBuffer.h"
</span><span class="cx"> #include "PatternAttributes.h"
</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 "SVGRadialGradientElement.h"
</span><span class="cx">
</span><ins>+#include "FloatConversion.h"
</ins><span class="cx"> #include "RadialGradientAttributes.h"
</span><del>-#include "SVGPaintServerRadialGradient.h"
</del><span class="cx"> #include "SVGLength.h"
</span><span class="cx"> #include "SVGNames.h"
</span><ins>+#include "SVGPaintServerRadialGradient.h"
</ins><span class="cx"> #include "SVGStopElement.h"
</span><span class="cx"> #include "SVGTransform.h"
</span><span class="cx"> #include "SVGTransformList.h"
</span><span class="lines">@@ -95,7 +96,7 @@
</span><span class="cx"> radialGradient->setGradientTransform(attributes.gradientTransform());
</span><span class="cx"> radialGradient->setGradientCenter(FloatPoint(attributes.cx(), attributes.cy()));
</span><span class="cx"> radialGradient->setGradientFocal(FloatPoint(attributes.fx(), attributes.fy()));
</span><del>- radialGradient->setGradientRadius(attributes.r());
</del><ins>+ radialGradient->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 "FloatConversion.h"
</ins><span class="cx"> #include "FloatRect.h"
</span><span class="cx"> #include "IntRect.h"
</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 &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 &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 &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 &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>