]> git.sesse.net Git - vlc/commitdiff
fix win32 threadvar linked list
authorSébastien Escudier <sebastien-devel@celeos.eu>
Mon, 7 Nov 2011 14:32:16 +0000 (15:32 +0100)
committerSébastien Escudier <sebastien-devel@celeos.eu>
Tue, 8 Nov 2011 09:07:09 +0000 (10:07 +0100)
src/win32/thread.c

index 22082be7672bf305cba48eb649e6b2bbff9d46c5..e8299f38f6434d5b3abd9db6c7c12c495f2e811c 100644 (file)
@@ -495,6 +495,9 @@ int vlc_threadvar_create (vlc_threadvar_t *p_tls, void (*destr) (void *))
 
     vlc_mutex_lock (&super_mutex);
     var->prev = vlc_threadvar_last;
+    if (var->prev)
+        var->prev->next = var;
+
     vlc_threadvar_last = var;
     vlc_mutex_unlock (&super_mutex);
     return 0;
@@ -507,10 +510,12 @@ void vlc_threadvar_delete (vlc_threadvar_t *p_tls)
     vlc_mutex_lock (&super_mutex);
     if (var->prev != NULL)
         var->prev->next = var->next;
-    else
-        vlc_threadvar_last = var->next;
+
     if (var->next != NULL)
         var->next->prev = var->prev;
+    else
+        vlc_threadvar_last = var->prev;
+
     vlc_mutex_unlock (&super_mutex);
 
     TlsFree (var->id);