Bug 981553 - Remove JitCompartment::rt. r=nbp

--HG--
extra : rebase_source : f67e0f35f7f050baa3a9d2520bd22f0760d4b36b
This commit is contained in:
Jan de Mooij 2014-03-14 19:13:06 +01:00
parent 2a551f3b08
commit 96d5ca7c7a
4 changed files with 11 additions and 16 deletions

View File

@ -455,9 +455,8 @@ jit::RequestInterruptForIonCode(JSRuntime *rt, JSRuntime::InterruptMode mode)
}
}
JitCompartment::JitCompartment(JitRuntime *rt)
: rt(rt),
stubCodes_(nullptr),
JitCompartment::JitCompartment()
: stubCodes_(nullptr),
baselineCallReturnAddr_(nullptr),
baselineGetPropReturnAddr_(nullptr),
baselineSetPropReturnAddr_(nullptr),
@ -562,7 +561,7 @@ JitCompartment::mark(JSTracer *trc, JSCompartment *compartment)
FinishAllOffThreadCompilations(compartment);
// Free temporary OSR buffer.
rt->freeOsrTempData();
trc->runtime->jitRuntime()->freeOsrTempData();
}
void

View File

@ -78,7 +78,7 @@ class Linker
template <AllowGC allowGC>
JitCode *newCode(JSContext *cx, JSC::CodeKind kind) {
return newCode<allowGC>(cx, cx->compartment()->jitCompartment()->execAlloc(), kind);
return newCode<allowGC>(cx, cx->runtime()->jitRuntime()->execAlloc(), kind);
}
JitCode *newCodeForIonScript(JSContext *cx) {

View File

@ -245,6 +245,10 @@ class JitRuntime
flusher_ = fl;
}
JSC::ExecutableAllocator *execAlloc() const {
return execAlloc_;
}
JSC::ExecutableAllocator *getIonAlloc(JSContext *cx) {
JS_ASSERT(cx->runtime()->currentThreadOwnsInterruptLock());
return ionAlloc_ ? ionAlloc_ : createIonAlloc(cx);
@ -336,9 +340,6 @@ class JitCompartment
{
friend class JitActivation;
// Ion state for the compartment's runtime.
JitRuntime *rt;
// Map ICStub keys to ICStub shared code objects.
typedef WeakValueCache<uint32_t, ReadBarriered<JitCode> > ICStubCodeMap;
ICStubCodeMap *stubCodes_;
@ -406,7 +407,7 @@ class JitCompartment
JSC::ExecutableAllocator *createIonAlloc();
public:
JitCompartment(JitRuntime *rt);
JitCompartment();
~JitCompartment();
bool initialize(JSContext *cx);
@ -417,10 +418,6 @@ class JitCompartment
void mark(JSTracer *trc, JSCompartment *compartment);
void sweep(FreeOp *fop);
JSC::ExecutableAllocator *execAlloc() {
return rt->execAlloc_;
}
JitCode *stringConcatStub(ExecutionMode mode) const {
switch (mode) {
case SequentialExecution: return stringConcatStub_;

View File

@ -164,12 +164,11 @@ JSCompartment::ensureJitCompartmentExists(JSContext *cx)
if (jitCompartment_)
return true;
JitRuntime *jitRuntime = cx->runtime()->getJitRuntime(cx);
if (!jitRuntime)
if (!cx->runtime()->getJitRuntime(cx))
return false;
/* Set the compartment early, so linking works. */
jitCompartment_ = cx->new_<JitCompartment>(jitRuntime);
jitCompartment_ = cx->new_<JitCompartment>();
if (!jitCompartment_)
return false;