$OpenBSD: patch-common_cache_cpp,v 1.1 2018/11/15 21:12:45 bcallah Exp $

Fix segfaults while building dictionaries on macppc
see https://github.com/GNUAspell/aspell/pull/532

Index: common/cache.cpp
--- common/cache.cpp.orig
+++ common/cache.cpp
@@ -5,8 +5,8 @@
 
 namespace acommon {
 
-static StackPtr<Mutex> global_cache_lock(new Mutex);
 static GlobalCacheBase * first_cache = 0;
+Mutex GlobalCacheBase::global_cache_lock;
 
 void Cacheable::copy() const
 {
@@ -70,7 +70,7 @@ void release_cache_data(GlobalCacheBase * cache, const
 GlobalCacheBase::GlobalCacheBase(const char * n)
   : name (n)
 {
-  LOCK(global_cache_lock);
+  LOCK(&global_cache_lock);
   next = first_cache;
   prev = &first_cache;
   if (first_cache) first_cache->prev = &next;
@@ -80,14 +80,14 @@ GlobalCacheBase::GlobalCacheBase(const char * n)
 GlobalCacheBase::~GlobalCacheBase()
 {
   detach_all();
-  LOCK(global_cache_lock);
+  LOCK(&global_cache_lock);
   *prev = next;
   if (next) next->prev = prev;
 }
 
 bool reset_cache(const char * which)
 {
-  LOCK(global_cache_lock);
+  LOCK(&GlobalCacheBase::global_cache_lock);
   bool any = false;
   for (GlobalCacheBase * i = first_cache; i; i = i->next)
   {
