From: Emmanuel Rodriguez Date: Fri, 31 Jul 2009 18:34:03 +0000 (+0200) Subject: Catch an arithmetic exception (division by 0) X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a9ffbb0ed51384ef44886456bc879d01b64702b1;p=libchamplain Catch an arithmetic exception (division by 0) --- diff --git a/tidy/tidy-finger-scroll.c b/tidy/tidy-finger-scroll.c index d404d72..f57f379 100644 --- a/tidy/tidy-finger-scroll.c +++ b/tidy/tidy-finger-scroll.c @@ -428,6 +428,18 @@ button_release_event_cb (ClutterActor *actor, frac = clutter_qdivx (CLUTTER_FLOAT_TO_FIXED (time_diff/1000.0), CLUTTER_FLOAT_TO_FIXED (1000.0/60.0)); + /* On a macbook that's running Ubuntu 9.04 sometimes frac is 0 and + this causes a division by 0. Here we try to avoid that. + */ + if (frac == 0) + { + g_print ("Caught a division by 0 (%d / %d).\n", + CLUTTER_FLOAT_TO_FIXED (time_diff/1000.0), + CLUTTER_FLOAT_TO_FIXED (1000.0/60.0) + ); + clutter_event_put ((ClutterEvent *)event); + return TRUE; + } /* See how many units to move in 1/60th of a second */ priv->dx = CLUTTER_UNITS_FROM_FIXED(clutter_qdivx ( CLUTTER_UNITS_TO_FIXED(x_origin - x), frac));