Fix 1bit mutex test on platforms with 32 bit aligned pointers
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Sun, 13 Nov 2011 16:49:57 +0000 (17:49 +0100)
committerSjoerd Simons <sjoerd.simons@collabora.co.uk>
Tue, 15 Nov 2011 08:27:00 +0000 (09:27 +0100)
The 1 bit mutex tests asserts: ((gsize) ptrs) % 8, ==, 0), which fails
when the platform only aligns porters to 32 bits (e.g. S390 and
powerpc).

I'm not sure why this assertion was placed here, but given
that internally g_pointer_bit_trylock uses g_atomic_int_or internally
change the assertion so it only requires the alignment to be a multiple
of sizeof(int)

glib/tests/1bit-mutex.c

index c1ec41c..8811cd3 100644 (file)
@@ -61,7 +61,7 @@ acquire (int      nr,
 
   self = g_thread_self ();
 
-  g_assert_cmpint (((gsize) ptrs) % 8, ==, 0);
+  g_assert_cmpint (((gsize) ptrs) % sizeof(gint), ==, 0);
 
   if (!(use_pointers ?
           g_pointer_bit_trylock (&ptrs[nr], bits[nr])