Title: [118205] trunk/Source/WebCore
- Revision
- 118205
- Author
- jer.no...@apple.com
- Date
- 2012-05-23 11:11:55 -0700 (Wed, 23 May 2012)
Log Message
GenericClock loses precision due to float->double conversion.
https://bugs.webkit.org/show_bug.cgi?id=87227
Reviewed by Darin Adler.
No new tests; fixes media/media-controller-time.html on Chromium.
Only narrow to float after the entire calculation is complete. This requires now() and m_offset
to be double-precision.
* platform/ClockGeneric.cpp:
(ClockGeneric::currentTime):
(ClockGeneric::now): Make double-precision.
* platform/ClockGeneric.h:
(ClockGeneric): Make m_offset double-precision.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (118204 => 118205)
--- trunk/Source/WebCore/ChangeLog 2012-05-23 18:11:48 UTC (rev 118204)
+++ trunk/Source/WebCore/ChangeLog 2012-05-23 18:11:55 UTC (rev 118205)
@@ -1,3 +1,21 @@
+2012-05-23 Jer Noble <jer.no...@apple.com>
+
+ GenericClock loses precision due to float->double conversion.
+ https://bugs.webkit.org/show_bug.cgi?id=87227
+
+ Reviewed by Darin Adler.
+
+ No new tests; fixes media/media-controller-time.html on Chromium.
+
+ Only narrow to float after the entire calculation is complete. This requires now() and m_offset
+ to be double-precision.
+
+ * platform/ClockGeneric.cpp:
+ (ClockGeneric::currentTime):
+ (ClockGeneric::now): Make double-precision.
+ * platform/ClockGeneric.h:
+ (ClockGeneric): Make m_offset double-precision.
+
2012-05-22 Jer Noble <jer.no...@apple.com>
PlatformClockCM has uninitialized m_rate member.
Modified: trunk/Source/WebCore/platform/ClockGeneric.cpp (118204 => 118205)
--- trunk/Source/WebCore/platform/ClockGeneric.cpp 2012-05-23 18:11:48 UTC (rev 118204)
+++ trunk/Source/WebCore/platform/ClockGeneric.cpp 2012-05-23 18:11:55 UTC (rev 118205)
@@ -49,7 +49,7 @@
{
if (m_running)
m_lastTime = now();
- float time = (narrowPrecisionToFloat(m_lastTime - m_startTime) * m_rate) + m_offset;
+ float time = narrowPrecisionToFloat(((m_lastTime - m_startTime) * m_rate) + m_offset);
return time;
}
@@ -79,8 +79,8 @@
m_running = false;
}
-float ClockGeneric::now() const
+double ClockGeneric::now() const
{
- return narrowPrecisionToFloat(WTF::currentTime());
+ return WTF::currentTime();
}
Modified: trunk/Source/WebCore/platform/ClockGeneric.h (118204 => 118205)
--- trunk/Source/WebCore/platform/ClockGeneric.h 2012-05-23 18:11:48 UTC (rev 118204)
+++ trunk/Source/WebCore/platform/ClockGeneric.h 2012-05-23 18:11:55 UTC (rev 118205)
@@ -45,11 +45,11 @@
virtual void stop();
virtual bool isRunning() const { return m_running; }
- float now() const;
+ double now() const;
bool m_running;
float m_rate;
- float m_offset;
+ double m_offset;
double m_startTime;
mutable double m_lastTime;
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes