diff options
| author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
| commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
| tree | e367e64a75991c554930278175d403c072de6bb8 /Source/JavaScriptCore/runtime/JSLock.h | |
| parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit.
Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSLock.h')
| -rw-r--r-- | Source/JavaScriptCore/runtime/JSLock.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/Source/JavaScriptCore/runtime/JSLock.h b/Source/JavaScriptCore/runtime/JSLock.h index 4c42dc0ae..83bcc2425 100644 --- a/Source/JavaScriptCore/runtime/JSLock.h +++ b/Source/JavaScriptCore/runtime/JSLock.h @@ -49,10 +49,10 @@ namespace JSC { // thread acquired it to begin with. class ExecState; - class JSGlobalData; + class VM; // This class is used to protect the initialization of the legacy single - // shared JSGlobalData. + // shared VM. class GlobalJSLock { WTF_MAKE_NONCOPYABLE(GlobalJSLock); public: @@ -66,19 +66,21 @@ namespace JSC { class JSLockHolder { public: - JS_EXPORT_PRIVATE JSLockHolder(JSGlobalData*); - JS_EXPORT_PRIVATE JSLockHolder(JSGlobalData&); + JS_EXPORT_PRIVATE JSLockHolder(VM*); + JS_EXPORT_PRIVATE JSLockHolder(VM&); JS_EXPORT_PRIVATE JSLockHolder(ExecState*); JS_EXPORT_PRIVATE ~JSLockHolder(); private: - RefPtr<JSGlobalData> m_globalData; + void init(); + + RefPtr<VM> m_vm; }; - class JSLock { + class JSLock : public ThreadSafeRefCounted<JSLock> { WTF_MAKE_NONCOPYABLE(JSLock); public: - JSLock(); + JSLock(VM*); JS_EXPORT_PRIVATE ~JSLock(); JS_EXPORT_PRIVATE void lock(); @@ -86,8 +88,10 @@ namespace JSC { static void lock(ExecState*); static void unlock(ExecState*); - static void lock(JSGlobalData&); - static void unlock(JSGlobalData&); + static void lock(VM&); + static void unlock(VM&); + + VM* vm() { return m_vm; } JS_EXPORT_PRIVATE bool currentThreadIsHoldingLock(); @@ -95,16 +99,18 @@ namespace JSC { unsigned dropAllLocksUnconditionally(); void grabAllLocks(unsigned lockCount); + void willDestroyVM(VM*); + class DropAllLocks { WTF_MAKE_NONCOPYABLE(DropAllLocks); public: JS_EXPORT_PRIVATE DropAllLocks(ExecState* exec); - JS_EXPORT_PRIVATE DropAllLocks(JSGlobalData*); + JS_EXPORT_PRIVATE DropAllLocks(VM*); JS_EXPORT_PRIVATE ~DropAllLocks(); private: intptr_t m_lockCount; - RefPtr<JSGlobalData> m_globalData; + RefPtr<VM> m_vm; }; private: @@ -113,6 +119,7 @@ namespace JSC { ThreadIdentifier m_ownerThread; intptr_t m_lockCount; unsigned m_lockDropDepth; + VM* m_vm; }; } // namespace |
