From: Sebastian Wilhelmi Date: Sat, 17 Dec 2005 12:20:50 +0000 (+0000) Subject: Fix memory barrier position in g_atomic_int_get and g_atomic_pointer_get. X-Git-Tag: GLIB_2_9_2~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78568970db620104924b45804c0604e934876075;p=platform%2Fupstream%2Fglib.git Fix memory barrier position in g_atomic_int_get and g_atomic_pointer_get. 2005-12-17 Sebastian Wilhelmi * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get and g_atomic_pointer_get. Add g_atomic_int_set and g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES && G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them as functions (additionally to the macros in the header) for the !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case. --- diff --git a/ChangeLog b/ChangeLog index 17b917a..37e3bda 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-12-17 Sebastian Wilhelmi + + * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get + and g_atomic_pointer_get. Add g_atomic_int_set and + g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES && + G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them + as functions (additionally to the macros in the header) for the + !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case. + 2005-12-16 Matthias Clasen * glib/gmem.c (g_allocator_new): Don't return a pointer to diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 17b917a..37e3bda 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2005-12-17 Sebastian Wilhelmi + + * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get + and g_atomic_pointer_get. Add g_atomic_int_set and + g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES && + G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them + as functions (additionally to the macros in the header) for the + !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case. + 2005-12-16 Matthias Clasen * glib/gmem.c (g_allocator_new): Don't return a pointer to diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 17b917a..37e3bda 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,12 @@ +2005-12-17 Sebastian Wilhelmi + + * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get + and g_atomic_pointer_get. Add g_atomic_int_set and + g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES && + G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them + as functions (additionally to the macros in the header) for the + !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case. + 2005-12-16 Matthias Clasen * glib/gmem.c (g_allocator_new): Don't return a pointer to diff --git a/glib/gatomic.c b/glib/gatomic.c index 5c35868..84c392a 100644 --- a/glib/gatomic.c +++ b/glib/gatomic.c @@ -647,22 +647,32 @@ g_atomic_pointer_set (volatile gpointer *atomic, gint g_atomic_int_get (volatile gint *atomic) { - gint result = *atomic; - G_ATOMIC_MEMORY_BARRIER; + return *atomic; +} - return result; +void +g_atomic_int_set (volatile gint *atomic, + gint newval) +{ + *atomic = newval; + G_ATOMIC_MEMORY_BARRIER; } gpointer g_atomic_pointer_get (volatile gpointer *atomic) { - gpointer result = *atomic; - G_ATOMIC_MEMORY_BARRIER; - - return result; + return *atomic; } + +void +g_atomic_pointer_set (volatile gpointer *atomic, + gpointer newval) +{ + *atomic = newval; + G_ATOMIC_MEMORY_BARRIER; +} #endif /* DEFINE_WITH_MUTEXES || G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ #ifdef ATOMIC_INT_CMP_XCHG @@ -712,11 +722,25 @@ gint return g_atomic_int_get (atomic); } +void +(g_atomic_int_set) (volatile gint *atomic, + gint newval) +{ + g_atomic_int_set (atomic, newval); +} + gpointer (g_atomic_pointer_get) (volatile gpointer *atomic) { return g_atomic_pointer_get (atomic); } + +void +(g_atomic_pointer_set) (volatile gpointer *atomic, + gpointer newval) +{ + g_atomic_pointer_set (atomic, newval); +} #endif /* G_ATOMIC_OP_MEMORY_BARRIER_NEEDED */ #define __G_ATOMIC_C__