Closed
Bug 526356
Opened 16 years ago
Closed 15 years ago
invalid debug memset of global native frame in ExecutreTree
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: luke, Assigned: luke)
Details
(Whiteboard: fixed-in-tracemonkey)
Attachments
(1 file)
1.13 KB,
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
Bug 525120 changes the way we allocate native stack and globals to reuse a single buffer. With deep aborts, we can have nested ExecuteTree invocations, which is fine except that
#ifdef DEBUG
memset(global, 0xCD, GLOBAL_SLOTS_BUFFER_SIZE * sizeof(double));
#endif
will overwrite the outer ExecuteTree's 0xdeadbeefdeadbeef end-of-global-frame marker. This causes an assertion if the inner ExecuteTree has a different globalFrameSize than the outer tree. This shows up in js_1_8_1/trace/trace-test.js.
The solution is just to remove the memset.
![]() |
Assignee | |
Updated•16 years ago
|
Attachment #410063 -
Flags: review?(dvander)
![]() |
||
Updated•16 years ago
|
Attachment #410063 -
Flags: review?(dvander) → review+
![]() |
Assignee | |
Comment 1•16 years ago
|
||
Whiteboard: fixed-in-tracemonkey
![]() |
Assignee | |
Comment 2•16 years ago
|
||
I guess I should be more specific and say that the bug fixed by this patch causes the assertion:
Assertion failure: *(uint64*)&global[globalFrameSize] == 0xdeadbeefdeadbeefLL, at ../jstracer.cpp:6481
Updated•16 years ago
|
Flags: in-testsuite+
![]() |
Assignee | |
Updated•15 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•