Closed
Bug 651915
Opened 14 years ago
Closed 14 years ago
Fix MarkStack size
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: gwagner, Assigned: gwagner)
References
Details
(Whiteboard: fixed-in-tracemonkey)
Attachments
(1 file)
|
1.25 KB,
patch
|
billm
:
review+
|
Details | Diff | Splinter Review |
There is somewhere another division missing since "limit" is the entry count:
static const size_t OBJECT_MARK_STACK_SIZE = 32768 * sizeof(JSObject *);
static const size_t XML_MARK_STACK_SIZE = 1024 * sizeof(JSXML *);
static const size_t LARGE_MARK_STACK_SIZE = 64 * sizeof(LargeMarkItem);
objStack = {
stack = 0x11a2a61d8,
tos = 0,
limit = 262143
},
xmlStack = {
stack = 0x11a4a61d8,
tos = 0,
limit = 8191
},
largeStack = {
stack = 0x11a4b61d8,
tos = 0,
limit = 511
}
Oops. The problem is here:
/* Pre-allocated space for the GC mark stacks. Pointer type ensures alignment. */
void *gcMarkStackObjs[js::OBJECT_MARK_STACK_SIZE];
void *gcMarkStackXMLs[js::XML_MARK_STACK_SIZE];
void *gcMarkStackLarges[js::LARGE_MARK_STACK_SIZE];
So the sizes are all four times bigger than I intended. I should have divided by sizeof(void*) or something.
| Assignee | ||
Updated•14 years ago
|
Attachment #527589 -
Flags: review?(wmccloskey)
Comment on attachment 527589 [details] [diff] [review]
patch
Thanks.
Attachment #527589 -
Flags: review?(wmccloskey) → review+
| Assignee | ||
Comment 4•14 years ago
|
||
Whiteboard: fixed-in-tracemonkey
Comment 5•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•