Backed out changeset a69d0ed7e27c (bug 1573809) for causing multiple failures CLOSED TREE

This commit is contained in:
Bogdan Tara 2019-10-07 15:01:08 +03:00
parent c126ce4560
commit e903f60a46
7 changed files with 9 additions and 14 deletions

View File

@ -2103,7 +2103,7 @@ void GCRuntime::sweepZoneAfterCompacting(Zone* zone) {
r->sweepGlobalObject();
r->sweepSelfHostingScriptSource();
r->sweepDebugEnvironments();
r->traceWeakEdgesInJitRealm(trc);
r->sweepJitRealm();
r->sweepObjectRealm();
r->sweepTemplateObjects();
}
@ -5234,9 +5234,8 @@ void GCRuntime::sweepJitDataOnMainThread(JSFreeOp* fop) {
{
gcstats::AutoPhase ap(stats(), gcstats::PhaseKind::SWEEP_JIT_DATA);
SweepingTracer trc(rt);
for (SweepGroupRealmsIter r(rt); !r.done(); r.next()) {
r->traceWeakEdgesInJitRealm(&trc);
r->sweepJitRealm();
}
for (SweepGroupZonesIter zone(rt); !zone.done(); zone.next()) {

View File

@ -184,7 +184,6 @@ struct SweepingTracer final : public JS::CallbackTracer {
bool onScriptEdge(JSScript** scriptp) override;
bool onLazyScriptEdge(LazyScript** lazyp) override;
bool onBaseShapeEdge(BaseShape** basep) override;
bool onJitCodeEdge(jit::JitCode** jitp) override;
bool onScopeEdge(Scope** scopep) override;
bool onRegExpSharedEdge(RegExpShared** sharedp) override;
bool onBigIntEdge(BigInt** bip) override;

View File

@ -3473,9 +3473,6 @@ bool SweepingTracer::onLazyScriptEdge(LazyScript** lazyp) {
bool SweepingTracer::onBaseShapeEdge(BaseShape** basep) {
return sweepEdge(basep);
}
bool SweepingTracer::onJitCodeEdge(jit::JitCode** jitp) {
return sweepEdge(jitp);
}
bool SweepingTracer::onScopeEdge(Scope** scopep) { return sweepEdge(scopep); }
bool SweepingTracer::onRegExpSharedEdge(RegExpShared** sharedp) {
return sweepEdge(sharedp);

View File

@ -580,15 +580,15 @@ void JitRuntime::SweepJitcodeGlobalTable(JSRuntime* rt) {
}
}
void JitRealm::traceWeak(JSTracer* trc, JS::Realm* realm) {
void JitRealm::sweep(JS::Realm* realm) {
// Any outstanding compilations should have been cancelled by the GC.
MOZ_ASSERT(!HasOffThreadIonCompile(realm));
stubCodes_->sweep();
for (WeakHeapPtrJitCode& stub : stubs_) {
if (stub) {
TraceWeakEdge(trc, &stub, "JitRealm::stubs_");
if (stub && IsAboutToBeFinalized(&stub)) {
stub.set(nullptr);
}
}
}

View File

@ -618,7 +618,7 @@ class JitRealm {
return stubs_[StringConcat];
}
void traceWeak(JSTracer* trc, JS::Realm* realm);
void sweep(JS::Realm* realm);
void discardStubs() {
for (WeakHeapPtrJitCode& stubRef : stubs_) {

View File

@ -384,9 +384,9 @@ void Realm::sweepSelfHostingScriptSource() {
}
}
void Realm::traceWeakEdgesInJitRealm(JSTracer* trc) {
void Realm::sweepJitRealm() {
if (jitRealm_) {
jitRealm_->traceWeak(trc, this);
jitRealm_->sweep(this);
}
}

View File

@ -779,7 +779,7 @@ class JS::Realm : public JS::shadow::Realm {
void setValidAccessPtr(bool* accessp) { validAccessPtr_ = accessp; }
bool ensureJitRealmExists(JSContext* cx);
void traceWeakEdgesInJitRealm(JSTracer* trc);
void sweepJitRealm();
js::jit::JitRealm* jitRealm() { return jitRealm_.get(); }