[webkit-reviews] review denied: [Bug 119860] Crash during exception unwinding : [Attachment 208964] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Aug 16 18:26:48 PDT 2013
Filip Pizlo <fpizlo at apple.com> has denied Oliver Hunt <oliver at apple.com>'s
request for review:
Bug 119860: Crash during exception unwinding
https://bugs.webkit.org/show_bug.cgi?id=119860
Attachment 208964: Patch
https://bugs.webkit.org/attachment.cgi?id=208964&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=208964&action=review
Please change the comment in DFGAbstractInterpreter.h that mentions Throw as a
terminal.
Please change the comment in DFGFlushLivenessAnalysis that mentions Throw as a
terminal. Ditto in DFGLivenessAnalysis.
> Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1497
> + case Unreachable:
> + break;
Since Throw/ThrowReferenceError do setIsValid(false) and presumably all other
uses of Unreachable will also be dominated by something that always
exits/terminates, shouldn't this be RELEASE_ASSERT_NOT_REACHED()?
> Source/JavaScriptCore/dfg/DFGClobberize.h:114
> + case Unreachable:
Since this is a control construct, shouldn't it write(SideState)?
> Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp:447
> + case Unreachable:
> + return false;
Why isn't this in the above case block, along with the cfaBranchDirection
assertion?
> Source/JavaScriptCore/dfg/DFGNodeType.h:252
> macro(Throw, NodeMustGenerate) \
> macro(ThrowReferenceError, NodeMustGenerate) \
Shouldn't you be removing these from the block that has the "block terminals"
comment? Wouldn't they be more appropriate in another block of node types with
a comment like "these always exit but aren't terminals to allow liveness hooks
after them"?
> Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4649
> + case Unreachable:
> + // We should not ever reach this code
> + m_jit.breakpoint();
> + noResult(node);
> + break;
Shouldn't this be a RELEASE_ASSERT_NOT_REACHED() because the *compiler*
shouldn't even reach this node?
(Ditto in the 32-bit compiler.)
More information about the webkit-reviews
mailing list