Diff
Modified: trunk/Source/_javascript_Core/CMakeLists.txt (157423 => 157424)
--- trunk/Source/_javascript_Core/CMakeLists.txt 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/CMakeLists.txt 2013-10-14 21:59:41 UTC (rev 157424)
@@ -181,7 +181,6 @@
heap/ConservativeRoots.cpp
heap/CopiedSpace.cpp
heap/CopyVisitor.cpp
- heap/DeferGC.cpp
heap/GCThread.cpp
heap/GCThreadSharedData.cpp
heap/HandleSet.cpp
Modified: trunk/Source/_javascript_Core/ChangeLog (157423 => 157424)
--- trunk/Source/_javascript_Core/ChangeLog 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/ChangeLog 2013-10-14 21:59:41 UTC (rev 157424)
@@ -1,3 +1,35 @@
+2013-10-14 Commit Queue <[email protected]>
+
+ Unreviewed, rolling out r157413.
+ http://trac.webkit.org/changeset/157413
+ https://bugs.webkit.org/show_bug.cgi?id=122779
+
+ Appears to have caused frequent crashes (Requested by ap on
+ #webkit).
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * _javascript_Core.vcxproj/_javascript_Core.vcxproj:
+ * _javascript_Core.vcxproj/_javascript_Core.vcxproj.filters:
+ * _javascript_Core.xcodeproj/project.pbxproj:
+ * heap/DeferGC.cpp: Removed.
+ * heap/DeferGC.h:
+ * jit/JITStubs.cpp:
+ (JSC::tryCacheGetByID):
+ (JSC::DEFINE_STUB_FUNCTION):
+ * llint/LLIntSlowPaths.cpp:
+ (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+ * runtime/ConcurrentJITLock.h:
+ * runtime/InitializeThreading.cpp:
+ (JSC::initializeThreadingOnce):
+ * runtime/JSCellInlines.h:
+ (JSC::allocateCell):
+ * runtime/Structure.cpp:
+ (JSC::Structure::materializePropertyMap):
+ (JSC::Structure::putSpecificValue):
+ (JSC::Structure::createPropertyMap):
+ * runtime/Structure.h:
+
2013-10-14 Mark Hahnenberg <[email protected]>
COLLECT_ON_EVERY_ALLOCATION causes assertion failures
Modified: trunk/Source/_javascript_Core/GNUmakefile.list.am (157423 => 157424)
--- trunk/Source/_javascript_Core/GNUmakefile.list.am 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/GNUmakefile.list.am 2013-10-14 21:59:41 UTC (rev 157424)
@@ -467,7 +467,6 @@
Source/_javascript_Core/heap/CopyWorkList.h \
Source/_javascript_Core/heap/ConservativeRoots.cpp \
Source/_javascript_Core/heap/ConservativeRoots.h \
- Source/_javascript_Core/heap/DeferGC.cpp \
Source/_javascript_Core/heap/DeferGC.h \
Source/_javascript_Core/heap/GCAssertions.h \
Source/_javascript_Core/heap/GCIncomingRefCounted.h \
Modified: trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj (157423 => 157424)
--- trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj 2013-10-14 21:59:41 UTC (rev 157424)
@@ -336,7 +336,6 @@
<ClCompile Include="..\heap\ConservativeRoots.cpp" />
<ClCompile Include="..\heap\CopiedSpace.cpp" />
<ClCompile Include="..\heap\CopyVisitor.cpp" />
- <ClCompile Include="..\heap\DeferGC.cpp" />
<ClCompile Include="..\heap\GCThread.cpp" />
<ClCompile Include="..\heap\GCThreadSharedData.cpp" />
<ClCompile Include="..\heap\HandleSet.cpp" />
@@ -705,7 +704,6 @@
<ClInclude Include="..\heap\CopyVisitor.h" />
<ClInclude Include="..\heap\CopyVisitorInlines.h" />
<ClInclude Include="..\heap\CopyWorkList.h" />
- <ClInclude Include="..\heap\DeferGC.h" />
<ClInclude Include="..\heap\GCAssertions.h" />
<ClInclude Include="..\heap\GCThread.h" />
<ClInclude Include="..\heap\GCThreadSharedData.h" />
Modified: trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters (157423 => 157424)
--- trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/_javascript_Core.vcxproj/_javascript_Core.vcxproj.filters 2013-10-14 21:59:41 UTC (rev 157424)
@@ -873,9 +873,6 @@
<ClCompile Include="..\heap\CodeBlockSet.cpp">
<Filter>heap</Filter>
</ClCompile>
- <ClCompile Include="..\heap\DeferGC.cpp">
- <Filter>heap</Filter>
- </ClCompile>
<ClCompile Include="..\bytecode\DeferredCompilationCallback.cpp">
<Filter>bytecode</Filter>
</ClCompile>
@@ -1226,9 +1223,6 @@
<ClInclude Include="..\heap\CopyWorkList.h">
<Filter>heap</Filter>
</ClInclude>
- <ClInclude Include="..\heap\DeferGC.h">
- <Filter>heap</Filter>
- </ClInclude>
<ClInclude Include="..\heap\GCAssertions.h">
<Filter>heap</Filter>
</ClInclude>
@@ -2387,4 +2381,4 @@
<Filter>jit</Filter>
</MASM>
</ItemGroup>
-</Project>
+</Project>
\ No newline at end of file
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (157423 => 157424)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2013-10-14 21:59:41 UTC (rev 157424)
@@ -373,8 +373,6 @@
0FC815151405119B00CFA603 /* VTableSpectrum.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FC815141405118D00CFA603 /* VTableSpectrum.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FC81516140511B500CFA603 /* VTableSpectrum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FC815121405118600CFA603 /* VTableSpectrum.cpp */; };
0FCCAE4516D0CF7400D0C65B /* ParserError.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCCAE4316D0CF6E00D0C65B /* ParserError.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 0FCEFAAB1804C13E00472CE4 /* FTLSaveRestore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAA91804C13E00472CE4 /* FTLSaveRestore.cpp */; };
- 0FCEFAAC1804C13E00472CE4 /* FTLSaveRestore.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFAAA1804C13E00472CE4 /* FTLSaveRestore.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FCEFAB01805CA6D00472CE4 /* InitializeLLVM.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFAAE1805CA6D00472CE4 /* InitializeLLVM.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FCEFAB11805CA6D00472CE4 /* InitializeLLVMMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAAF1805CA6D00472CE4 /* InitializeLLVMMac.mm */; };
0FCEFAC11805D94E00472CE4 /* LLVMOverrides.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAC01805D94100472CE4 /* LLVMOverrides.cpp */; };
@@ -391,6 +389,8 @@
0FCEFAD71806174600472CE4 /* LLVMAnchor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAD61806174600472CE4 /* LLVMAnchor.cpp */; };
0FCEFADA180620DA00472CE4 /* LLVMAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFAC81805E75500472CE4 /* LLVMAPI.h */; };
0FCEFADC18064A1400472CE4 /* config_llvm.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFADB18064A1400472CE4 /* config_llvm.h */; };
+ 0FCEFAAB1804C13E00472CE4 /* FTLSaveRestore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFAA91804C13E00472CE4 /* FTLSaveRestore.cpp */; };
+ 0FCEFAAC1804C13E00472CE4 /* FTLSaveRestore.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFAAA1804C13E00472CE4 /* FTLSaveRestore.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FCEFADF180738C000472CE4 /* FTLLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FCEFADD180738C000472CE4 /* FTLLocation.cpp */; };
0FCEFAE0180738C000472CE4 /* FTLLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FCEFADE180738C000472CE4 /* FTLLocation.h */; settings = {ATTRIBUTES = (Private, ); }; };
0FD2C92416D01EE900C7803F /* StructureInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FD2C92316D01EE900C7803F /* StructureInlines.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -684,7 +684,6 @@
2600B5A7152BAAA70091EE5F /* JSStringJoiner.h in Headers */ = {isa = PBXBuildFile; fileRef = 2600B5A5152BAAA70091EE5F /* JSStringJoiner.h */; };
2A48D1911772365B00C65A5F /* APICallbackFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = C211B574176A224D000E2A23 /* APICallbackFunction.h */; };
2A6F462617E959CE00C45C98 /* HeapOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A6F462517E959CE00C45C98 /* HeapOperation.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 2A7A58EF1808A4C40020BDF7 /* DeferGC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2A7A58EE1808A4C40020BDF7 /* DeferGC.cpp */; };
2AD8932B17E3868F00668276 /* HeapIterationScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AD8932917E3868F00668276 /* HeapIterationScope.h */; };
371D842D17C98B6E00ECF994 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 371D842C17C98B6E00ECF994 /* libz.dylib */; };
41359CF30FDD89AD00206180 /* DateConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = D21202290AD4310C00ED79B6 /* DateConversion.h */; };
@@ -1628,8 +1627,6 @@
0FC815141405118D00CFA603 /* VTableSpectrum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VTableSpectrum.h; sourceTree = "<group>"; };
0FCB408515C0A3C30048932B /* SlotVisitorInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SlotVisitorInlines.h; sourceTree = "<group>"; };
0FCCAE4316D0CF6E00D0C65B /* ParserError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParserError.h; sourceTree = "<group>"; };
- 0FCEFAA91804C13E00472CE4 /* FTLSaveRestore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLSaveRestore.cpp; path = ftl/FTLSaveRestore.cpp; sourceTree = "<group>"; };
- 0FCEFAAA1804C13E00472CE4 /* FTLSaveRestore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLSaveRestore.h; path = ftl/FTLSaveRestore.h; sourceTree = "<group>"; };
0FCEFAAE1805CA6D00472CE4 /* InitializeLLVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InitializeLLVM.h; path = llvm/InitializeLLVM.h; sourceTree = "<group>"; };
0FCEFAAF1805CA6D00472CE4 /* InitializeLLVMMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InitializeLLVMMac.mm; path = llvm/InitializeLLVMMac.mm; sourceTree = "<group>"; };
0FCEFAB61805D61600472CE4 /* libllvmForJSC.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libllvmForJSC.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1645,6 +1642,8 @@
0FCEFAD21805EDCC00472CE4 /* LLVMHeaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LLVMHeaders.h; path = llvm/LLVMHeaders.h; sourceTree = "<group>"; };
0FCEFAD61806174600472CE4 /* LLVMAnchor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LLVMAnchor.cpp; sourceTree = "<group>"; };
0FCEFADB18064A1400472CE4 /* config_llvm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config_llvm.h; sourceTree = "<group>"; };
+ 0FCEFAA91804C13E00472CE4 /* FTLSaveRestore.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLSaveRestore.cpp; path = ftl/FTLSaveRestore.cpp; sourceTree = "<group>"; };
+ 0FCEFAAA1804C13E00472CE4 /* FTLSaveRestore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLSaveRestore.h; path = ftl/FTLSaveRestore.h; sourceTree = "<group>"; };
0FCEFADD180738C000472CE4 /* FTLLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FTLLocation.cpp; path = ftl/FTLLocation.cpp; sourceTree = "<group>"; };
0FCEFADE180738C000472CE4 /* FTLLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FTLLocation.h; path = ftl/FTLLocation.h; sourceTree = "<group>"; };
0FD2C92316D01EE900C7803F /* StructureInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StructureInlines.h; sourceTree = "<group>"; };
@@ -1892,7 +1891,6 @@
2600B5A4152BAAA70091EE5F /* JSStringJoiner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSStringJoiner.cpp; sourceTree = "<group>"; };
2600B5A5152BAAA70091EE5F /* JSStringJoiner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSStringJoiner.h; sourceTree = "<group>"; };
2A6F462517E959CE00C45C98 /* HeapOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapOperation.h; sourceTree = "<group>"; };
- 2A7A58EE1808A4C40020BDF7 /* DeferGC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DeferGC.cpp; sourceTree = "<group>"; };
2AD8932917E3868F00668276 /* HeapIterationScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HeapIterationScope.h; sourceTree = "<group>"; };
371D842C17C98B6E00ECF994 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
449097EE0F8F81B50076A327 /* FeatureDefines.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = FeatureDefines.xcconfig; sourceTree = "<group>"; };
@@ -2918,7 +2916,6 @@
C2239D1416262BDD005AC5FD /* CopyVisitorInlines.h */,
C218D13F1655CFD50062BB81 /* CopyWorkList.h */,
0F136D4B174AD69B0075B354 /* DeferGC.h */,
- 2A7A58EE1808A4C40020BDF7 /* DeferGC.cpp */,
BCBE2CAD14E985AA000593AD /* GCAssertions.h */,
0F2B66A817B6B53D00A7AE3F /* GCIncomingRefCounted.h */,
0F2B66A917B6B53D00A7AE3F /* GCIncomingRefCountedInlines.h */,
@@ -5483,7 +5480,6 @@
0FD8A32517D51F5700CA2C40 /* DFGOSREntrypointCreationPhase.cpp in Sources */,
A7386555118697B400540279 /* ThunkGenerators.cpp in Sources */,
0F2B670717B6B5AB00A7AE3F /* TypedArrayController.cpp in Sources */,
- 2A7A58EF1808A4C40020BDF7 /* DeferGC.cpp in Sources */,
0F2B670A17B6B5AB00A7AE3F /* TypedArrayType.cpp in Sources */,
0FF4274A158EBE91004CB9FF /* udis86.c in Sources */,
0FF42740158EBE8B004CB9FF /* udis86_decode.c in Sources */,
Deleted: trunk/Source/_javascript_Core/heap/DeferGC.cpp (157423 => 157424)
--- trunk/Source/_javascript_Core/heap/DeferGC.cpp 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/heap/DeferGC.cpp 2013-10-14 21:59:41 UTC (rev 157424)
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "DeferGC.h"
-
-namespace JSC {
-
-#ifndef NDEBUG
-WTF::ThreadSpecificKey DisallowGC::s_isGCDisallowedOnCurrentThread = 0;
-#endif
-
-} // namespace JSC
Modified: trunk/Source/_javascript_Core/heap/DeferGC.h (157423 => 157424)
--- trunk/Source/_javascript_Core/heap/DeferGC.h 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/heap/DeferGC.h 2013-10-14 21:59:41 UTC (rev 157424)
@@ -28,7 +28,6 @@
#include "Heap.h"
#include <wtf/Noncopyable.h>
-#include <wtf/ThreadSpecific.h>
namespace JSC {
@@ -68,34 +67,6 @@
Heap& m_heap;
};
-#ifndef NDEBUG
-class DisallowGC {
- WTF_MAKE_NONCOPYABLE(DisallowGC);
-public:
- DisallowGC()
- {
- WTF::threadSpecificSet(s_isGCDisallowedOnCurrentThread, reinterpret_cast<void*>(true));
- }
-
- ~DisallowGC()
- {
- WTF::threadSpecificSet(s_isGCDisallowedOnCurrentThread, reinterpret_cast<void*>(false));
- }
-
- static bool isGCDisallowedOnCurrentThread()
- {
- return !!WTF::threadSpecificGet(s_isGCDisallowedOnCurrentThread);
- }
- static void initialize()
- {
- WTF::threadSpecificKeyCreate(&s_isGCDisallowedOnCurrentThread, 0);
- }
-
-private:
- JS_EXPORT_PRIVATE static WTF::ThreadSpecificKey s_isGCDisallowedOnCurrentThread;
-};
-#endif // NDEBUG
-
} // namespace JSC
#endif // DeferGC_h
Modified: trunk/Source/_javascript_Core/jit/JITStubs.cpp (157423 => 157424)
--- trunk/Source/_javascript_Core/jit/JITStubs.cpp 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/jit/JITStubs.cpp 2013-10-14 21:59:41 UTC (rev 157424)
@@ -125,7 +125,7 @@
NEVER_INLINE static void tryCacheGetByID(CallFrame* callFrame, CodeBlock* codeBlock, ReturnAddressPtr returnAddress, JSValue baseValue, const Identifier& propertyName, const PropertySlot& slot, StructureStubInfo* stubInfo)
{
- GCSafeConcurrentJITLocker locker(codeBlock->m_lock, callFrame->vm().heap);
+ ConcurrentJITLocker locker(codeBlock->m_lock);
// FIXME: Write a test that proves we need to check for recursion here just
// like the interpreter does, then add a check for recursion.
@@ -555,7 +555,7 @@
return JSValue::encode(result);
}
- GCSafeConcurrentJITLocker locker(codeBlock->m_lock, callFrame->vm().heap);
+ ConcurrentJITLocker locker(codeBlock->m_lock);
Structure* structure = baseValue.asCell()->structure();
Modified: trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp (157423 => 157424)
--- trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/llint/LLIntSlowPaths.cpp 2013-10-14 21:59:41 UTC (rev 157424)
@@ -596,7 +596,7 @@
&& baseCell == slot.base()) {
if (slot.type() == PutPropertySlot::NewProperty) {
- GCSafeConcurrentJITLocker locker(codeBlock->m_lock, vm.heap);
+ ConcurrentJITLocker locker(codeBlock->m_lock);
if (!structure->isDictionary() && structure->previousID()->outOfLineCapacity() == structure->outOfLineCapacity()) {
ASSERT(structure->previousID()->transitionWatchpointSetHasBeenInvalidated());
Modified: trunk/Source/_javascript_Core/runtime/ConcurrentJITLock.h (157423 => 157424)
--- trunk/Source/_javascript_Core/runtime/ConcurrentJITLock.h 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/runtime/ConcurrentJITLock.h 2013-10-14 21:59:41 UTC (rev 157424)
@@ -26,7 +26,6 @@
#ifndef ConcurrentJITLock_h
#define ConcurrentJITLock_h
-#include "DeferGC.h"
#include <wtf/ByteSpinLock.h>
#include <wtf/NoLock.h>
@@ -34,81 +33,13 @@
#if ENABLE(CONCURRENT_JIT)
typedef ByteSpinLock ConcurrentJITLock;
-typedef ByteSpinLocker ConcurrentJITLockerImpl;
+typedef ByteSpinLocker ConcurrentJITLocker;
#else
typedef NoLock ConcurrentJITLock;
-typedef NoLockLocker ConcurrentJITLockerImpl;
+typedef NoLockLocker ConcurrentJITLocker;
#endif
-class ConcurrentJITLockerBase {
- WTF_MAKE_NONCOPYABLE(ConcurrentJITLockerBase);
-public:
- explicit ConcurrentJITLockerBase(ConcurrentJITLock& lockable)
- : m_locker(&lockable)
- {
- }
- explicit ConcurrentJITLockerBase(ConcurrentJITLock* lockable)
- : m_locker(lockable)
- {
- }
-
- ~ConcurrentJITLockerBase()
- {
- }
-
- void unlockEarly()
- {
- m_locker.unlockEarly();
- }
-
-private:
- ConcurrentJITLockerImpl m_locker;
-};
-
-class GCSafeConcurrentJITLocker : public ConcurrentJITLockerBase {
-public:
- GCSafeConcurrentJITLocker(ConcurrentJITLock& lockable, Heap& heap)
- : ConcurrentJITLockerBase(lockable)
- , m_deferGC(heap)
- {
- }
-
- GCSafeConcurrentJITLocker(ConcurrentJITLock* lockable, Heap& heap)
- : ConcurrentJITLockerBase(lockable)
- , m_deferGC(heap)
- {
- }
-
-private:
-#if ENABLE(CONCURRENT_JIT)
- DeferGC m_deferGC;
-#else
- struct NoDefer {
- NoDefer(Heap& heap) : m_heap(heap) { }
- Heap& m_heap;
- };
- NoDefer m_deferGC;
-#endif
-};
-
-class ConcurrentJITLocker : public ConcurrentJITLockerBase {
-public:
- ConcurrentJITLocker(ConcurrentJITLock& lockable)
- : ConcurrentJITLockerBase(lockable)
- {
- }
-
- ConcurrentJITLocker(ConcurrentJITLock* lockable)
- : ConcurrentJITLockerBase(lockable)
- {
- }
-
-#if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG)
-private:
- DisallowGC m_disallowGC;
-#endif
-};
-
} // namespace JSC
#endif // ConcurrentJITLock_h
+
Modified: trunk/Source/_javascript_Core/runtime/InitializeThreading.cpp (157423 => 157424)
--- trunk/Source/_javascript_Core/runtime/InitializeThreading.cpp 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/runtime/InitializeThreading.cpp 2013-10-14 21:59:41 UTC (rev 157424)
@@ -69,9 +69,6 @@
#if ENABLE(LLINT)
LLInt::initialize();
#endif
-#ifndef NDEBUG
- DisallowGC::initialize();
-#endif
}
void initializeThreading()
Modified: trunk/Source/_javascript_Core/runtime/JSCellInlines.h (157423 => 157424)
--- trunk/Source/_javascript_Core/runtime/JSCellInlines.h 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/runtime/JSCellInlines.h 2013-10-14 21:59:41 UTC (rev 157424)
@@ -27,7 +27,6 @@
#define JSCellInlines_h
#include "CallFrame.h"
-#include "DeferGC.h"
#include "Handle.h"
#include "JSCell.h"
#include "JSObject.h"
@@ -86,7 +85,6 @@
template<typename T>
void* allocateCell(Heap& heap, size_t size)
{
- ASSERT(!DisallowGC::isGCDisallowedOnCurrentThread());
ASSERT(size >= sizeof(T));
#if ENABLE(GC_VALIDATION)
ASSERT(!heap.vm()->isInitializingObject());
Modified: trunk/Source/_javascript_Core/runtime/Structure.cpp (157423 => 157424)
--- trunk/Source/_javascript_Core/runtime/Structure.cpp 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/runtime/Structure.cpp 2013-10-14 21:59:41 UTC (rev 157424)
@@ -280,7 +280,7 @@
// Must hold the lock on this structure, since we will be modifying this structure's
// property map. We don't want getConcurrently() to see the property map in a half-baked
// state.
- GCSafeConcurrentJITLocker locker(m_lock, vm.heap);
+ ConcurrentJITLocker locker(m_lock);
if (!table)
createPropertyMap(locker, vm, numberOfSlotsForLastOffset(m_offset, m_inlineCapacity));
else
@@ -881,7 +881,7 @@
PropertyOffset Structure::putSpecificValue(VM& vm, PropertyName propertyName, unsigned attributes, JSCell* specificValue)
{
- GCSafeConcurrentJITLocker locker(m_lock, vm.heap);
+ ConcurrentJITLocker locker(m_lock);
ASSERT(!JSC::isValidOffset(get(vm, propertyName)));
@@ -926,7 +926,7 @@
return offset;
}
-void Structure::createPropertyMap(const GCSafeConcurrentJITLocker&, VM& vm, unsigned capacity)
+void Structure::createPropertyMap(const ConcurrentJITLocker&, VM& vm, unsigned capacity)
{
ASSERT(!propertyTable());
Modified: trunk/Source/_javascript_Core/runtime/Structure.h (157423 => 157424)
--- trunk/Source/_javascript_Core/runtime/Structure.h 2013-10-14 21:45:13 UTC (rev 157423)
+++ trunk/Source/_javascript_Core/runtime/Structure.h 2013-10-14 21:59:41 UTC (rev 157424)
@@ -393,7 +393,7 @@
PropertyOffset putSpecificValue(VM&, PropertyName, unsigned attributes, JSCell* specificValue);
PropertyOffset remove(PropertyName);
- void createPropertyMap(const GCSafeConcurrentJITLocker&, VM&, unsigned keyCount = 0);
+ void createPropertyMap(const ConcurrentJITLocker&, VM&, unsigned keyCount = 0);
void checkConsistency();
bool despecifyFunction(VM&, PropertyName);