Closed
Bug 713068
Opened 13 years ago
Closed 13 years ago
IonMonkey: Invalidation leaks IonScripts
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: dvander, Assigned: dvander)
References
Details
Attachments
(1 file)
8.96 KB,
patch
|
cdleary
:
review+
|
Details | Diff | Splinter Review |
IonScripts are not gcthings, so when we invalidate, and detach them from JSScripts, they don't get freed later. Simple solution is to just refcount them.
Comment 1•13 years ago
|
||
Is this instead of the HandleException walk-and-free approach? I'm just curious because performing decref operations appropriately doesn't seem inherently easier than performing a free operation appropriately.
Assignee | ||
Comment 2•13 years ago
|
||
Nah they're orthogonal. We'd incref the IonScript when we create an InvalidationRecord for it, and decref the IonScript when we destroy the record. The HandleException approach is fine we just have to destroy the IonScripts too.
Comment 3•13 years ago
|
||
Oh right. At least that's nice and limited in scope -- don't need to worry about keeping a refcount until it actually becomes invalidated.
Assignee | ||
Comment 4•13 years ago
|
||
Attachment #583982 -
Flags: review?(christopher.leary)
Comment 5•13 years ago
|
||
Comment on attachment 583982 [details] [diff] [review]
fix
Review of attachment 583982 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/ion/IonFrames.h
@@ +166,5 @@
> void *calleeToken;
> uint8 *returnAddress;
> IonScript *ionScript;
>
> InvalidationRecord(void *calleeToken, uint8 *returnAddress);
Should we privatize this stuff now?
Attachment #583982 -
Flags: review?(christopher.leary) → review+
Assignee | ||
Comment 6•13 years ago
|
||
I tried :( unfortunately new_ requires public visibility.
http://hg.mozilla.org/projects/ionmonkey/rev/83f981a4e266
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•