Fixed test for invalid timer values.

Fixes #436 (properly).
This commit is contained in:
Camilla Berglund 2015-03-10 12:01:38 +01:00
parent 4596663232
commit 6e20cda7fd
3 changed files with 8 additions and 3 deletions

View File

@ -184,6 +184,7 @@ skills.
- Nathan Sweet
- TTK-Bandit
- Sergey Tikhomirov
- A. Tombs
- Samuli Tuomola
- urraka
- Jari Vetoniemi

View File

@ -3098,10 +3098,15 @@ GLFWAPI double glfwGetTime(void);
/*! @brief Sets the GLFW timer.
*
* This function sets the value of the GLFW timer. It then continues to count
* up from that value. The value must be a positive finite number.
* up from that value. The value must be a positive finite number less than
* or equal to 18446744073.0, which is approximately 584.5 years.
*
* @param[in] time The new value, in seconds.
*
* @remarks The upper limit of the timer is calculated as
* floor((2<sup>64</sup> - 1) / 10<sup>9</sup>) and is due to implementations
* storing nanoseconds in 64 bits. The limit may be increased in the future.
*
* @par Thread Safety
* This function may only be called from the main thread.
*

View File

@ -28,7 +28,6 @@
#include "internal.h"
#include <stdlib.h>
#include <float.h>
#if defined(_MSC_VER)
#include <malloc.h>
#endif
@ -593,7 +592,7 @@ GLFWAPI void glfwSetTime(double time)
{
_GLFW_REQUIRE_INIT();
if (time != time || time - DBL_MAX == time || time < 0.0)
if (time != time || time < 0.0 || time > 18446744073.0)
{
_glfwInputError(GLFW_INVALID_VALUE, "Invalid time");
return;