summaryrefslogtreecommitdiffstats
path: root/src/cairo-2-static-init.patch
blob: 16d74c3aa21ed26b03a0e1b9f90f2aea6c3176dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
This file is part of MXE.
See index.html for further information.

When DllMain is not being run, we need to initialize the font face mutex before using it.

diff --git a/src/win32/cairo-win32-font.c b/src/win32/cairo-win32-font.c
index a65d81b..31d854d 100644
--- a/src/win32/cairo-win32-font.c
+++ b/src/win32/cairo-win32-font.c
@@ -1912,6 +1912,8 @@ _cairo_win32_font_face_hash_table_destroy (void)
 {
     cairo_hash_table_t *hash_table;
 
+    CAIRO_MUTEX_INITIALIZE ();
+
     /* We manually acquire the lock rather than calling
      * _cairo_win32_font_face_hash_table_lock simply to avoid creating
      * the table only to destroy it again. */
@@ -1927,6 +1929,8 @@ _cairo_win32_font_face_hash_table_destroy (void)
 static cairo_hash_table_t *
 _cairo_win32_font_face_hash_table_lock (void)
 {
+    CAIRO_MUTEX_INITIALIZE ();
+
     CAIRO_MUTEX_LOCK (_cairo_win32_font_face_mutex);
 
     if (unlikely (cairo_win32_font_face_hash_table == NULL))