Title: [150188] branches/dfgFourthTier/Source/_javascript_Core
- Revision
- 150188
- Author
- [email protected]
- Date
- 2013-05-16 11:12:24 -0700 (Thu, 16 May 2013)
Log Message
fourthTier: infrequent segfault in DFGCodeBlocks::deleteUnmarkedJettisonedCodeBlocks()
https://bugs.webkit.org/show_bug.cgi?id=116134
CodeBlock and JITCode should be ThreadSafeRefCounted. We're going to
start using them on more threads very soon (with concurrent
compilation). This patch also fixes the specific place where we were
superfluously creating a RefPtr.
Reviewed by Oliver Hunt.
* bytecode/CodeBlock.h:
(JSC::CodeBlock::getJITType):
* jit/JITCode.h:
Modified Paths
Diff
Modified: branches/dfgFourthTier/Source/_javascript_Core/ChangeLog (150187 => 150188)
--- branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-05-16 18:04:13 UTC (rev 150187)
+++ branches/dfgFourthTier/Source/_javascript_Core/ChangeLog 2013-05-16 18:12:24 UTC (rev 150188)
@@ -1,3 +1,19 @@
+2013-05-16 Mark Hahnenberg <[email protected]>
+
+ fourthTier: infrequent segfault in DFGCodeBlocks::deleteUnmarkedJettisonedCodeBlocks()
+ https://bugs.webkit.org/show_bug.cgi?id=116134
+
+ CodeBlock and JITCode should be ThreadSafeRefCounted. We're going to
+ start using them on more threads very soon (with concurrent
+ compilation). This patch also fixes the specific place where we were
+ superfluously creating a RefPtr.
+
+ Reviewed by Oliver Hunt.
+
+ * bytecode/CodeBlock.h:
+ (JSC::CodeBlock::getJITType):
+ * jit/JITCode.h:
+
2013-05-16 Mark Lam <[email protected]>
Implement a probe mechanism for JIT generated code.
Modified: branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h (150187 => 150188)
--- branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h 2013-05-16 18:04:13 UTC (rev 150187)
+++ branches/dfgFourthTier/Source/_javascript_Core/bytecode/CodeBlock.h 2013-05-16 18:12:24 UTC (rev 150188)
@@ -90,7 +90,7 @@
static ALWAYS_INLINE int missingThisObjectMarker() { return std::numeric_limits<int>::max(); }
-class CodeBlock : public RefCounted<CodeBlock>, public UnconditionalFinalizer, public WeakReferenceHarvester {
+class CodeBlock : public ThreadSafeRefCounted<CodeBlock>, public UnconditionalFinalizer, public WeakReferenceHarvester {
WTF_MAKE_FAST_ALLOCATED;
friend class JIT;
friend class LLIntOffsetsExtractor;
@@ -297,7 +297,7 @@
}
PassRefPtr<JITCode> getJITCode() { return m_jitCode; }
MacroAssemblerCodePtr getJITCodeWithArityCheck() { return m_jitCodeWithArityCheck; }
- JITCode::JITType getJITType() const { return JITCode::jitTypeFor(m_jitCode); }
+ JITCode::JITType getJITType() const { return JITCode::jitTypeFor(m_jitCode.get()); }
virtual JSObject* compileOptimized(ExecState*, JSScope*, unsigned bytecodeIndex) = 0;
virtual void jettison() = 0;
enum JITCompilationResult { AlreadyCompiled, CouldNotCompile, CompiledSuccessfully };
Modified: branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.h (150187 => 150188)
--- branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.h 2013-05-16 18:04:13 UTC (rev 150187)
+++ branches/dfgFourthTier/Source/_javascript_Core/jit/JITCode.h 2013-05-16 18:12:24 UTC (rev 150188)
@@ -50,7 +50,7 @@
class JSStack;
#endif
-class JITCode : public RefCounted<JITCode> {
+class JITCode : public ThreadSafeRefCounted<JITCode> {
public:
typedef MacroAssemblerCodeRef CodeRef;
typedef MacroAssemblerCodePtr CodePtr;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes