utils: Don't use G_GNUC_CONST for the uint64 scaling functions
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 28 Jun 2010 08:20:39 +0000 (10:20 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 28 Jun 2010 08:20:39 +0000 (10:20 +0200)
They are actually *not* const functions because on architectures
without int128 instructions the parameters were changed.

gcc re-used the parameters on the stack for multiple calls though
and the changed parameters were used for the second call then.

Fixes bug #623003.

gst/gstutils.h

index bbfae2d..82860bb 100644 (file)
@@ -63,13 +63,13 @@ gdouble         gst_util_guint64_to_gdouble     (guint64 value)  G_GNUC_CONST;
 #define         gst_guint64_to_gdouble(value)   ((gdouble) (value))
 #endif
 
-guint64                gst_util_uint64_scale           (guint64 val, guint64 num, guint64 denom) G_GNUC_CONST;
-guint64                gst_util_uint64_scale_round     (guint64 val, guint64 num, guint64 denom) G_GNUC_CONST;
-guint64                gst_util_uint64_scale_ceil      (guint64 val, guint64 num, guint64 denom) G_GNUC_CONST;
+guint64                gst_util_uint64_scale           (guint64 val, guint64 num, guint64 denom);
+guint64                gst_util_uint64_scale_round     (guint64 val, guint64 num, guint64 denom);
+guint64                gst_util_uint64_scale_ceil      (guint64 val, guint64 num, guint64 denom);
 
-guint64         gst_util_uint64_scale_int       (guint64 val, gint num, gint denom) G_GNUC_CONST;
-guint64         gst_util_uint64_scale_int_round (guint64 val, gint num, gint denom) G_GNUC_CONST;
-guint64         gst_util_uint64_scale_int_ceil  (guint64 val, gint num, gint denom) G_GNUC_CONST;
+guint64         gst_util_uint64_scale_int       (guint64 val, gint num, gint denom);
+guint64         gst_util_uint64_scale_int_round (guint64 val, gint num, gint denom);
+guint64         gst_util_uint64_scale_int_ceil  (guint64 val, gint num, gint denom);
 
 guint32         gst_util_seqnum_next            (void);
 gint32          gst_util_seqnum_compare         (guint32 s1, guint32 s2);