Title: [104094] trunk/Source/_javascript_Core
- Revision
- 104094
- Author
- [email protected]
- Date
- 2012-01-04 16:31:10 -0800 (Wed, 04 Jan 2012)
Log Message
StructureStubInfo not reset when corresponding MethodCallLinkInfo is reset
https://bugs.webkit.org/show_bug.cgi?id=75583
Reviewed by Filip Pizlo.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finalizeUnconditionally): Find the corresponding
StructureStubInfo and reset the appropriate JIT and
the StructureStubInfo itself when reseting a MethodCallLinkInfo.
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (104093 => 104094)
--- trunk/Source/_javascript_Core/ChangeLog 2012-01-05 00:29:36 UTC (rev 104093)
+++ trunk/Source/_javascript_Core/ChangeLog 2012-01-05 00:31:10 UTC (rev 104094)
@@ -1,5 +1,17 @@
2012-01-04 Michael Saboff <[email protected]>
+ StructureStubInfo not reset when corresponding MethodCallLinkInfo is reset
+ https://bugs.webkit.org/show_bug.cgi?id=75583
+
+ Reviewed by Filip Pizlo.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::finalizeUnconditionally): Find the corresponding
+ StructureStubInfo and reset the appropriate JIT and
+ the StructureStubInfo itself when reseting a MethodCallLinkInfo.
+
+2012-01-04 Michael Saboff <[email protected]>
+
Invalid ASSERT() in DFGRepatch.cpp near line 385
https://bugs.webkit.org/show_bug.cgi?id=75584
Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp (104093 => 104094)
--- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2012-01-05 00:29:36 UTC (rev 104093)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp 2012-01-05 00:31:10 UTC (rev 104094)
@@ -1788,6 +1788,19 @@
if (verboseUnlinking)
printf("Clearing method call in %p.\n", this);
m_methodCallLinkInfos[i].reset(repatchBuffer, getJITType());
+
+ StructureStubInfo& stubInfo = getStubInfo(m_methodCallLinkInfos[i].bytecodeIndex);
+
+ AccessType accessType = static_cast<AccessType>(stubInfo.accessType);
+
+ if (accessType != access_unset) {
+ ASSERT(isGetByIdAccess(accessType));
+ if (getJITCode().jitType() == JITCode::DFGJIT)
+ DFG::dfgResetGetByID(repatchBuffer, stubInfo);
+ else
+ JIT::resetPatchGetById(repatchBuffer, &stubInfo);
+ stubInfo.reset();
+ }
}
}
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes