summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2011-06-24 15:13:35 -0400
committerShaun McCance <shaunm@gnome.org>2011-06-24 15:15:33 -0400
commit7558d40a73d0e8d986e2e9611a55a3b768edcb0a (patch)
tree58e13b8cf912a29acec1454a3dcfd0a5d42aa7d7
parent662225843b57b7892e9b8bf3d2a76d896e1b34e1 (diff)
downloadyelp-7558d40a73d0e8d986e2e9611a55a3b768edcb0a.tar.gz
Fixed search crash on 64-bit, didn't #include header
If you don't #include the header, the default return type is int, which truncates the pointer on 64-bit systems, which crashes.
-rw-r--r--libyelp/yelp-docbook-document.c1
-rw-r--r--libyelp/yelp-mallard-document.c1
-rw-r--r--libyelp/yelp-storage.c3
3 files changed, 5 insertions, 0 deletions
diff --git a/libyelp/yelp-docbook-document.c b/libyelp/yelp-docbook-document.c
index 479597b9..b7e3a985 100644
--- a/libyelp/yelp-docbook-document.c
+++ b/libyelp/yelp-docbook-document.c
@@ -34,6 +34,7 @@
#include "yelp-docbook-document.h"
#include "yelp-error.h"
#include "yelp-settings.h"
+#include "yelp-storage.h"
#include "yelp-transform.h"
#include "yelp-debug.h"
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c
index 2c62a7f1..5ce5f171 100644
--- a/libyelp/yelp-mallard-document.c
+++ b/libyelp/yelp-mallard-document.c
@@ -34,6 +34,7 @@
#include "yelp-error.h"
#include "yelp-mallard-document.h"
#include "yelp-settings.h"
+#include "yelp-storage.h"
#include "yelp-transform.h"
#include "yelp-debug.h"
diff --git a/libyelp/yelp-storage.c b/libyelp/yelp-storage.c
index 97a1786b..e369f42b 100644
--- a/libyelp/yelp-storage.c
+++ b/libyelp/yelp-storage.c
@@ -42,8 +42,11 @@ yelp_storage_set_default (YelpStorage *storage)
YelpStorage *
yelp_storage_get_default (void)
{
+ static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+ g_static_mutex_lock (&mutex);
if (default_storage == NULL)
default_storage = yelp_sqlite_storage_new (":memory:");
+ g_static_mutex_unlock (&mutex);
return default_storage;
}