]> git.sesse.net Git - vlc/commitdiff
vlc_gc: FixOSAtomic usage.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 20 Sep 2008 00:35:43 +0000 (02:35 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 20 Sep 2008 00:35:43 +0000 (02:35 +0200)
src/libvlc.c

index 07e25d3b3013f21b9e3568833143a57cc04934e1..07347a1145c32cc3953d1c0ffa3db37532045557 100644 (file)
@@ -155,7 +155,7 @@ void *vlc_hold (gc_object_t * p_gc)
 #ifdef USE_SYNC
     refs = __sync_fetch_and_add (&p_gc->refs, 1);
 #elif defined(__APPLE__)
-    OSAtomicIncrement32Barrier((int*)&p_gc->refs);
+    refs = OSAtomicIncrement32Barrier((int*)&p_gc->refs) - 1;
 #else
     vlc_spin_lock (&p_gc->spin);
     refs = p_gc->refs++;
@@ -178,7 +178,7 @@ void vlc_release (gc_object_t *p_gc)
 #ifdef USE_SYNC
     refs = __sync_fetch_and_sub (&p_gc->refs, 1);
 #elif defined(__APPLE__)
-    OSAtomicDecrement32Barrier((int*)&p_gc->refs);
+    refs = OSAtomicDecrement32Barrier((int*)&p_gc->refs) + 1;
 #else
     vlc_spin_lock (&p_gc->spin);
     refs = p_gc->refs--;