gfx/cairo/pixman-xp-dll-workaround

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 diff --git a/gfx/cairo/libpixman/src/pixman-compiler.h b/gfx/cairo/libpixman/src/pixman-compiler.h
     2 --- a/gfx/cairo/libpixman/src/pixman-compiler.h
     3 +++ b/gfx/cairo/libpixman/src/pixman-compiler.h
     4 @@ -114,20 +114,22 @@
     6  #elif defined(TLS)
     8  #   define PIXMAN_DEFINE_THREAD_LOCAL(type, name)			\
     9      static TLS type name
    10  #   define PIXMAN_GET_THREAD_LOCAL(name)				\
    11      (&name)
    13 -#elif defined(__MINGW32__)
    14 +#elif defined(__MINGW32__) || defined(PIXMAN_USE_XP_DLL_TLS_WORKAROUND)
    16  #   define _NO_W32_PSEUDO_MODIFIERS
    17  #   include <windows.h>
    18 +#undef IN
    19 +#undef OUT
    21  #   define PIXMAN_DEFINE_THREAD_LOCAL(type, name)			\
    22      static volatile int tls_ ## name ## _initialized = 0;		\
    23      static void *tls_ ## name ## _mutex = NULL;				\
    24      static unsigned tls_ ## name ## _index;				\
    25  									\
    26      static type *							\
    27      tls_ ## name ## _alloc (void)					\

mercurial