Changeset 37990 in webkit for trunk/JavaScriptCore
- Timestamp:
- Oct 29, 2008, 8:38:55 PM (17 years ago)
- Location:
- trunk/JavaScriptCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r37989 r37990 1 2008-10-29 Steve Falkenburg <[email protected]> 2 3 <rdar://problem/6326563> Crash on launch 4 5 For Windows, export explicit functions rather than exporting data for atomicallyInitializedStaticMutex. 6 7 Exporting data from a DLL on Windows requires specifying __declspec(dllimport) in the header used by 8 callers, but __declspec(dllexport) when defined in the DLL implementation. By instead exporting 9 the explicit lock/unlock functions, we can avoid this. 10 11 Fixes a crash on launch, since we were previously erroneously exporting atomicallyInitializedStaticMutex as a function. 12 13 Reviewed by Darin Adler. 14 15 * wtf/Threading.h: 16 (WTF::lockAtomicallyInitializedStaticMutex): 17 (WTF::unlockAtomicallyInitializedStaticMutex): 18 * wtf/ThreadingWin.cpp: 19 (WTF::lockAtomicallyInitializedStaticMutex): 20 (WTF::unlockAtomicallyInitializedStaticMutex): 21 1 22 2008-10-29 Sam Weinig <[email protected]> 2 23 -
trunk/JavaScriptCore/wtf/Threading.h
r37732 r37990 96 96 // For portability, we do not use thread-safe statics natively supported by some compilers (e.g. gcc). 97 97 #define AtomicallyInitializedStatic(T, name) \ 98 WTF:: atomicallyInitializedStaticMutex->lock(); \98 WTF::lockAtomicallyInitializedStaticMutex(); \ 99 99 static T name; \ 100 WTF:: atomicallyInitializedStaticMutex->unlock();100 WTF::unlockAtomicallyInitializedStaticMutex(); 101 101 102 102 namespace WTF { … … 252 252 void initializeThreading(); 253 253 254 #if !PLATFORM(WIN_OS) 254 255 extern Mutex* atomicallyInitializedStaticMutex; 256 inline void lockAtomicallyInitializedStaticMutex() { atomicallyInitializedStaticMutex->lock(); } 257 inline void unlockAtomicallyInitializedStaticMutex() { atomicallyInitializedStaticMutex->unlock(); } 258 #else 259 void lockAtomicallyInitializedStaticMutex(); 260 void unlockAtomicallyInitializedStaticMutex(); 261 #endif 255 262 256 263 } // namespace WTF -
trunk/JavaScriptCore/wtf/ThreadingWin.cpp
r37364 r37990 108 108 } 109 109 110 Mutex* atomicallyInitializedStaticMutex; 110 static Mutex* atomicallyInitializedStaticMutex; 111 112 void lockAtomicallyInitializedStaticMutex() 113 { 114 atomicallyInitializedStaticMutex->lock(); 115 } 116 117 void unlockAtomicallyInitializedStaticMutex() 118 { 119 atomicallyInitializedStaticMutex->unlock(); 120 } 111 121 112 122 static ThreadIdentifier mainThreadIdentifier;
Note:
See TracChangeset
for help on using the changeset viewer.