From 78506bd604099161819ffdd0fdef98967f8980de Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 23 Aug 2012 09:28:13 +0200 Subject: [PATCH] quartz: add evil casting to make sure time wraps correctly on 32bit machines get_time_from_ns_event(): apply patch from Michael Hutchinson which makes sure the returned guint32 wraps correctly on 32 bit machines when the uptime exceeds 2^32 ms. --- gdk/quartz/gdkevents-quartz.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c index 4921fcd510..0c4c240793 100644 --- a/gdk/quartz/gdkevents-quartz.c +++ b/gdk/quartz/gdkevents-quartz.c @@ -172,8 +172,11 @@ static guint32 get_time_from_ns_event (NSEvent *event) { double time = [event timestamp]; - - return time * 1000.0; + + /* cast via double->uint64 conversion to make sure that it is + * wrapped on 32-bit machines when it overflows + */ + return (guint32) (guint64) (time * 1000.0); } static int