pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/graphics/xine-lib Fix mutex locking problems and some ...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/09ea21cdb7af
branches:  trunk
changeset: 462426:09ea21cdb7af
user:      mycroft <mycroft%pkgsrc.org@localhost>
date:      Thu Oct 02 12:31:30 2003 +0000

description:
Fix mutex locking problems and some funkiness with %fs so that win32 codecs
work.

diffstat:

 graphics/xine-lib/distinfo         |   4 ++-
 graphics/xine-lib/patches/patch-al |  40 ++++++++++++++++++++++++++++++++++++++
 graphics/xine-lib/patches/patch-am |  25 +++++++++++++++++++++++
 3 files changed, 68 insertions(+), 1 deletions(-)

diffs (88 lines):

diff -r f19f24ca0d7b -r 09ea21cdb7af graphics/xine-lib/distinfo
--- a/graphics/xine-lib/distinfo        Thu Oct 02 10:39:24 2003 +0000
+++ b/graphics/xine-lib/distinfo        Thu Oct 02 12:31:30 2003 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.7 2003/10/02 10:11:49 mycroft Exp $
+$NetBSD: distinfo,v 1.8 2003/10/02 12:31:30 mycroft Exp $
 
 SHA1 (xine-lib-1-rc0a.tar.gz) = ee41ba602179a9f02208a15e3dff36a1dfa00fac
 Size (xine-lib-1-rc0a.tar.gz) = 4211552 bytes
@@ -12,3 +12,5 @@
 SHA1 (patch-ai) = f71e3cb57bf30cbf9653a469c040b6e3f717ba97
 SHA1 (patch-aj) = 54cf69b028d46327d46b5cc2a0ec457bd4a59b67
 SHA1 (patch-ak) = 5e791e17755e0b7515d81f80790d529992e827d6
+SHA1 (patch-al) = 4e995a84efcb8ae17a803f8f1cc6118506be09b0
+SHA1 (patch-am) = 0441dcd9faf0c0e7f07c8d0fc7a61fcce435af76
diff -r f19f24ca0d7b -r 09ea21cdb7af graphics/xine-lib/patches/patch-al
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics/xine-lib/patches/patch-al        Thu Oct 02 12:31:30 2003 +0000
@@ -0,0 +1,40 @@
+$NetBSD: patch-al,v 1.1 2003/10/02 12:31:30 mycroft Exp $
+
+--- src/libw32dll/wine/win32.c.orig    2003-10-02 12:25:52.000000000 +0000
++++ src/libw32dll/wine/win32.c 2003-10-02 12:21:50.000000000 +0000
+@@ -440,9 +442,8 @@
+ 
+     alccnt--;
+ 
+-    if (last_alloc)
+-      pthread_mutex_unlock(&memmut);
+-    else
++    pthread_mutex_unlock(&memmut);
++    if (!last_alloc)
+       pthread_mutex_destroy(&memmut);
+ 
+     //if (alccnt < 40000) printf("MY_RELEASE: %p\t%ld    (%d)\n", header, header->size, alccnt);
+@@ -1349,11 +1350,10 @@
+ #endif
+       printf("wine/win32: Win32 Warning: Accessed uninitialized Critical Section (%p)!\n", c);
+     }
+-    if(cs->locked)
++    if(cs->locked++)
+       if(cs->id==pthread_self())
+           return;
+     pthread_mutex_lock(&(cs->mutex));
+-    cs->locked=1;
+     cs->id=pthread_self();
+     return;
+ }
+@@ -1371,8 +1371,8 @@
+       printf("Win32 Warning: Leaving uninitialized Critical Section %p!!\n", c);
+       return;
+     }
+-    cs->locked=0;
+-    pthread_mutex_unlock(&(cs->mutex));
++    if (!--cs->locked)
++        pthread_mutex_unlock(&(cs->mutex));
+     return;
+ }
+ static void WINAPI expDeleteCriticalSection(CRITICAL_SECTION *c)
diff -r f19f24ca0d7b -r 09ea21cdb7af graphics/xine-lib/patches/patch-am
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/graphics/xine-lib/patches/patch-am        Thu Oct 02 12:31:30 2003 +0000
@@ -0,0 +1,25 @@
+$NetBSD: patch-am,v 1.1 2003/10/02 12:31:30 mycroft Exp $
+
+--- src/libw32dll/wine/ldt_keeper.c.orig       2003-07-13 19:29:04.000000000 +0000
++++ src/libw32dll/wine/ldt_keeper.c    2003-10-02 12:28:23.000000000 +0000
+@@ -147,18 +147,9 @@
+ 
+ void Check_FS_Segment(void)
+ {
+-    int fs;
+-     __asm__ __volatile__(
+-      "movw %%fs,%%ax; mov %%eax,%0" : "=r" (fs) :: "%eax"
++    __asm__ __volatile__(
++      "movl %0,%%eax; movw %%ax, %%fs" : : "i" (TEB_SEL) : "%eax"
+     );
+-    fs = fs & 0xffff;
+-    
+-    if( fs != TEB_SEL ) {
+-      printf("ldt_keeper: FS segment is not set or has being lost!\n");
+-      printf("            Please report this error to xine-devel%sourceforge.net@localhost\n");
+-      printf("            Aborting....\n");
+-      abort();
+-    }
+ }
+ 
+ #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)



Home | Main Index | Thread Index | Old Index