OSDN Git Service

Avoid constructing the MutexLocker class to avoid
authorGrace Kloba <klobag@google.com>
Tue, 27 Oct 2009 17:24:07 +0000 (10:24 -0700)
committerGrace Kloba <klobag@google.com>
Tue, 27 Oct 2009 17:24:07 +0000 (10:24 -0700)
two mystery crashes.

JavaScriptCore/wtf/Threading.h

index bbfe8b5..72c242f 100644 (file)
@@ -259,8 +259,15 @@ public:
 #if USE(LOCKFREE_THREADSAFESHARED)
         atomicIncrement(&m_refCount);
 #else
+#if defined ANDROID // avoid constructing a class to avoid two mystery crashes
+        m_mutex.lock();
+#else
         MutexLocker locker(m_mutex);
+#endif
         ++m_refCount;
+#if defined ANDROID
+        m_mutex.unlock();
+#endif
 #endif
     }
 
@@ -287,9 +294,16 @@ protected:
 #else
         int refCount;
         {
+#if defined ANDROID // avoid constructing a class to avoid two mystery crashes
+            m_mutex.lock();
+#else
             MutexLocker locker(m_mutex);
+#endif
             --m_refCount;
             refCount = m_refCount;
+#if defined ANDROID
+            m_mutex.unlock();
+#endif
         }
         if (refCount <= 0)
             return true;