diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c index f5037d0b1..786dcb49a 100644 --- a/glib/gthread-posix.c +++ b/glib/gthread-posix.c @@ -268,7 +268,10 @@ g_rec_mutex_impl_new (void) pthread_mutexattr_t attr; pthread_mutex_t *mutex; - mutex = g_slice_new (pthread_mutex_t); + mutex = malloc (sizeof (pthread_mutex_t)); + if G_UNLIKELY (mutex == NULL) + g_thread_abort (errno, "malloc"); + pthread_mutexattr_init (&attr); pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init (mutex, &attr); @@ -281,7 +284,7 @@ static void g_rec_mutex_impl_free (pthread_mutex_t *mutex) { pthread_mutex_destroy (mutex); - g_slice_free (pthread_mutex_t, mutex); + free (mutex); } static pthread_mutex_t *