Closed Bug 1503251 Opened 11 months ago Closed 10 months ago

Tracelogger: do not clear all dictionary data when calling js::ResetTraceLogger()

Categories

(Core :: JavaScript Engine, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
Future
Tracking Status
firefox65 --- fixed

People

(Reporter: denispal, Assigned: denispal)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Some events persist even when the profiler is stopped, and they may continue to be referenced in the next profiling session.  They are kept track of using a pointer counter for the TraceLoggerEventPayload pointers, but the actual string data that carries the payload gets cleared on reset.  Instead of clearing, append the data we need into a new DictionaryVector and replace the old one with the new dictionary.
If the JS::ResetTraceLogger() routine is called, then keep track of existing event payloads and keep their existence alive instead of clearing them.  This data can still be referred to in another profiler session and can therefore cause to dangling pointers if we free them.
Keywords: checkin-needed
Pushed by nerli@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ec925f7dac88
Keep payload values in the dictionary if they are still alive. r=djvj
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/ec925f7dac88
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.