From a9ffbb0ed51384ef44886456bc879d01b64702b1 Mon Sep 17 00:00:00 2001 From: Emmanuel Rodriguez Date: Fri, 31 Jul 2009 20:34:03 +0200 Subject: [PATCH] Catch an arithmetic exception (division by 0) --- tidy/tidy-finger-scroll.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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)); -- 2.39.5