88182d375e13ae6519a288d5295220c83ca27e73 caught this issue in
g_async_queue_timed_pop() but failed to fix the same bug in the _unlocked()
variant.
This is only a problem on 32bit systems. On 64bit systems, the tv_sec
in a timeval is already 64 bits, so no overflow occurs.
https://bugzilla.gnome.org/show_bug.cgi?id=722604
if (end_time != NULL)
{
m_end_time = g_get_monotonic_time () +
- ((gint64)end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec -
- g_get_real_time ());
+ ((gint64) end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec - g_get_real_time ());
}
else
m_end_time = -1;
if (end_time != NULL)
{
m_end_time = g_get_monotonic_time () +
- (end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec -
- g_get_real_time ());
+ ((gint64) end_time->tv_sec * G_USEC_PER_SEC + end_time->tv_usec - g_get_real_time ());
}
else
m_end_time = -1;