aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCNull.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/basetypes/MCNull.cpp')
-rw-r--r--src/core/basetypes/MCNull.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/core/basetypes/MCNull.cpp b/src/core/basetypes/MCNull.cpp
index cdb8335f..53d50622 100644
--- a/src/core/basetypes/MCNull.cpp
+++ b/src/core/basetypes/MCNull.cpp
@@ -10,10 +10,16 @@
using namespace mailcore;
-Null * Null::null()
+static Null * s_null = NULL;
+static pthread_once_t s_once;
+
+static void init_null(void)
{
- Null * result = new Null();
- result->autorelease();
- return result;
+ s_null = new Null();
}
+Null * Null::null()
+{
+ pthread_once(&s_once, init_null);
+ return s_null;
+}