Last Comment Bug 693406 - INFERFLAGS=full causes assertion with multi-compartment tests
: INFERFLAGS=full causes assertion with multi-compartment tests
Status: RESOLVED FIXED
[inbound]
:
Product: Core
Classification: Components
Component: JavaScript Engine (show other bugs)
: unspecified
: x86_64 Linux
: -- normal (vote)
: mozilla10
Assigned To: general
:
Mentors:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-10-10 13:05 PDT by Jim Blandy :jimb
Modified: 2011-10-11 02:36 PDT (History)
1 user (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
Set the activeAnalysis flag in the proper compartment when printing TypeCompartments from js_DestroyContext with INFERFLAGS=full. (2.38 KB, patch)
2011-10-10 13:05 PDT, Jim Blandy :jimb
bhackett1024: review+
Details | Diff | Splinter Review

Description Jim Blandy :jimb 2011-10-10 13:05:44 PDT
Created attachment 566006 [details] [diff] [review]
Set the activeAnalysis flag in the proper compartment when printing TypeCompartments from js_DestroyContext with INFERFLAGS=full.

When ISpewResult is enabled, js_DestroyContext walks over all the
compartments and dumps their types. However, it doesn't switch the context
to each compartment as it does so, so the context passed in to all the
print calls may not be in the same compartment as the scripts whose type
inference results it's printing. This means that

    AutoEnterAnalysis enter(cx);

sets the activeAnalysis flag in the wrong compartment, leading to assertion
failures in functions like js::analyze::ScriptAnalysis::slotEscapes.
Comment 2 Marco Bonardo [::mak] 2011-10-11 02:36:48 PDT
https://hg.mozilla.org/mozilla-central/rev/818edd78ffac

Note You need to log in before you can comment on or make changes to this bug.