Summary: | JavaScript crash for all pages in op_get_by_id_chain opcode | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Michael Goffioul <michael.goffioul> | ||||
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Critical | CC: | oliver | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Attachments: |
|
Description
Michael Goffioul
2008-09-30 01:31:23 PDT
Created attachment 24011 [details]
Remove NEXT_OPCODE calls within embedded while-loops
I think I found the problem: NEXT_OPCODE translates to a simple "continue"
statement under MSVC (there's no computed goto). As a result, you can't
use NEXT_OPCODE within an embedded while-loop, as it will wrongly jump
to the nearest while-loop. I found 2 occurrences of this problem. Patch
attached. The patch is not very elegant, but it works.
This has been fixed in tot, a goto is now used: #define NEXT_INSTRUCTION() SAMPLE(callFrame->codeBlock(), vPC); goto interpreterLoopStart |