view src/cairo-2-static-init.patch @ 5531:eae508c12529

Add build rule for build-octave (bug #49503). * src/build-octave.mk: Add new build rule for build-octave which can be used for cross-building binary packages that depend on Octave as a build tool. * dist-files.mk: Add new file to list. * index.html: Add new package to list. * src/of-communications.mk, src/of-image.mk, src/of-mapping.mk, src/of-optiminterp.mk, src/of-sparsersb.mk, src/of-statistics.mk, src/of-windows.mk: Add optional dependency on build-octave. * configure.ac: Add new configure switch "--disable-system-octave" that is needed to build the build-octave package. * Makefile.in: Add variable "USE_SYSTEM_OCTAVE". Exclude build-octave from the default build tools and build it only if a package explicitly depends on it. Display warning about missing native Octave version only if necessary.
author Markus Mützel <markus.muetzel@gmx.de>
date Tue, 08 Sep 2020 23:04:38 +0200
parents 6aaa1723e277
children
line wrap: on
line source

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,10 @@ _cairo_win32_font_face_hash_table_destroy (void)
 {
     cairo_hash_table_t *hash_table;

+#ifndef DLL_EXPORT 
+    CAIRO_MUTEX_INITIALIZE ();
+#endif
+
     /* 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,10 @@ _cairo_win32_font_face_hash_table_destroy (void)
 static cairo_hash_table_t *
 _cairo_win32_font_face_hash_table_lock (void)
 {
+#ifndef DLL_EXPORT
+    CAIRO_MUTEX_INITIALIZE ();
+#endif
+
     CAIRO_MUTEX_LOCK (_cairo_win32_font_face_mutex);
 
     if (unlikely (cairo_win32_font_face_hash_table == NULL))