[tor-commits] [tor-browser] 241/311: Backed out changeset ec817d9e8a17 (bug 1661293) for causing Bug 1758370

gitolite role git at cupani.torproject.org
Tue Apr 26 15:30:41 UTC 2022


This is an automated email from the git hooks/post-receive script.

pierov pushed a commit to branch geckoview-99.0.1-11.0-1
in repository tor-browser.

commit b2463b119a807755d6a87718091e9416d0db3a4b
Author: donal meehan <dmeehan at mozilla.com>
AuthorDate: Wed Mar 23 17:22:48 2022 -0400

    Backed out changeset ec817d9e8a17 (bug 1661293) for causing Bug 1758370
---
 dom/base/nsJSEnvironment.cpp         | 10 ++--------
 js/public/GCAPI.h                    |  4 +---
 js/src/gc/GC.cpp                     | 27 ---------------------------
 js/src/gc/GCRuntime.h                |  1 -
 js/src/jsapi.cpp                     | 12 +++---------
 xpcom/base/CycleCollectedJSContext.h |  3 +--
 xpcom/base/CycleCollectedJSRuntime.h |  2 +-
 7 files changed, 8 insertions(+), 51 deletions(-)

diff --git a/dom/base/nsJSEnvironment.cpp b/dom/base/nsJSEnvironment.cpp
index 82db36d86cbaa..add8c6deb01c3 100644
--- a/dom/base/nsJSEnvironment.cpp
+++ b/dom/base/nsJSEnvironment.cpp
@@ -1662,14 +1662,8 @@ void nsJSContext::MaybePokeGC() {
   }
 
   JSRuntime* rt = CycleCollectedJSRuntime::Get()->Runtime();
-  JS::GCReason reason = JS::WantEagerMinorGC(rt);
-  if (reason != JS::GCReason::NO_REASON) {
-    MOZ_ASSERT(reason == JS::GCReason::EAGER_NURSERY_COLLECTION);
-    sScheduler.PokeMinorGC(reason);
-  }
-  reason = JS::WantEagerMajorGC(rt);
-  if (reason != JS::GCReason::NO_REASON) {
-    PokeGC(reason, nullptr, 0);
+  if (JS::IsIdleGCTaskNeeded(rt)) {
+    sScheduler.PokeMinorGC(JS::GCReason::EAGER_NURSERY_COLLECTION);
   }
 }
 
diff --git a/js/public/GCAPI.h b/js/public/GCAPI.h
index 00cf87c986eaf..9ba9c3750ade0 100644
--- a/js/public/GCAPI.h
+++ b/js/public/GCAPI.h
@@ -1237,9 +1237,7 @@ JS_GetExternalStringCallbacks(JSString* str);
 
 namespace JS {
 
-extern JS_PUBLIC_API GCReason WantEagerMinorGC(JSRuntime* rt);
-
-extern JS_PUBLIC_API GCReason WantEagerMajorGC(JSRuntime* rt);
+extern JS_PUBLIC_API bool IsIdleGCTaskNeeded(JSRuntime* rt);
 
 extern JS_PUBLIC_API void MaybeRunNurseryCollection(JSRuntime* rt,
                                                     JS::GCReason reason);
diff --git a/js/src/gc/GC.cpp b/js/src/gc/GC.cpp
index 66cc854009b52..a79195c8d038d 100644
--- a/js/src/gc/GC.cpp
+++ b/js/src/gc/GC.cpp
@@ -1654,33 +1654,6 @@ void GCRuntime::maybeGC() {
   }
 }
 
-JS::GCReason GCRuntime::wantMajorGC() {
-  MOZ_ASSERT(CurrentThreadCanAccessRuntime(rt));
-
-  // This implementation parallels maybeGC() above.
-
-  // From gcIfRequested().
-  if (majorGCRequested()) {
-    return majorGCTriggerReason;
-  }
-
-  if (isIncrementalGCInProgress()) {
-    return JS::GCReason::NO_REASON;
-  }
-
-  JS::GCReason reason = JS::GCReason::NO_REASON;
-  for (ZonesIter zone(this, WithAtoms); !zone.done(); zone.next()) {
-    if (checkEagerAllocTrigger(zone->gcHeapSize, zone->gcHeapThreshold) ||
-        checkEagerAllocTrigger(zone->mallocHeapSize,
-                               zone->mallocHeapThreshold)) {
-      zone->scheduleGC();
-      reason = JS::GCReason::EAGER_ALLOC_TRIGGER;
-    }
-  }
-
-  return reason;
-}
-
 bool GCRuntime::checkEagerAllocTrigger(const HeapSize& size,
                                        const HeapThreshold& threshold) {
   double thresholdBytes =
diff --git a/js/src/gc/GCRuntime.h b/js/src/gc/GCRuntime.h
index 778ca7632b56f..77b9daf9de7d0 100644
--- a/js/src/gc/GCRuntime.h
+++ b/js/src/gc/GCRuntime.h
@@ -330,7 +330,6 @@ class GCRuntime {
   bool triggerZoneGC(Zone* zone, JS::GCReason reason, size_t usedBytes,
                      size_t thresholdBytes);
   void maybeGC();
-  JS::GCReason wantMajorGC();
   bool checkEagerAllocTrigger(const HeapSize& size,
                               const HeapThreshold& threshold);
   // The return value indicates whether a major GC was performed.
diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp
index 3fcb326508f83..db03374c31831 100644
--- a/js/src/jsapi.cpp
+++ b/js/src/jsapi.cpp
@@ -1279,15 +1279,9 @@ JS_PUBLIC_API void JS_RemoveExtraGCRootsTracer(JSContext* cx,
   return cx->runtime()->gc.removeBlackRootsTracer(traceOp, data);
 }
 
-JS_PUBLIC_API JS::GCReason JS::WantEagerMinorGC(JSRuntime* rt) {
-  if (rt->gc.nursery().shouldCollect()) {
-    return JS::GCReason::EAGER_NURSERY_COLLECTION;
-  }
-  return JS::GCReason::NO_REASON;
-}
-
-JS_PUBLIC_API JS::GCReason JS::WantEagerMajorGC(JSRuntime* rt) {
-  return rt->gc.wantMajorGC();
+JS_PUBLIC_API bool JS::IsIdleGCTaskNeeded(JSRuntime* rt) {
+  // Currently, we only collect nursery during idle time.
+  return rt->gc.nursery().shouldCollect();
 }
 
 JS_PUBLIC_API void JS::MaybeRunNurseryCollection(JSRuntime* rt,
diff --git a/xpcom/base/CycleCollectedJSContext.h b/xpcom/base/CycleCollectedJSContext.h
index bb04584b3cbce..4236e58434402 100644
--- a/xpcom/base/CycleCollectedJSContext.h
+++ b/xpcom/base/CycleCollectedJSContext.h
@@ -210,8 +210,7 @@ class CycleCollectedJSContext : dom::PerThreadAtomCache, private JS::JobQueue {
   MOZ_CAN_RUN_SCRIPT_BOUNDARY
   virtual void AfterProcessTask(uint32_t aRecursionDepth);
 
-  // Check whether any eager thresholds have been reached, which would mean
-  // an idle GC task (minor or major) would be useful.
+  // Check whether we need an idle minor GC task.
   virtual void MaybePokeGC();
 
   uint32_t RecursionDepth() const;
diff --git a/xpcom/base/CycleCollectedJSRuntime.h b/xpcom/base/CycleCollectedJSRuntime.h
index 07deb577f34e1..b1689df042231 100644
--- a/xpcom/base/CycleCollectedJSRuntime.h
+++ b/xpcom/base/CycleCollectedJSRuntime.h
@@ -376,7 +376,7 @@ class CycleCollectedJSRuntime {
 
   bool IsIdleGCTaskNeeded() {
     return !HasPendingIdleGCTask() && Runtime() &&
-           JS::WantEagerMinorGC(Runtime()) != JS::GCReason::NO_REASON;
+           JS::IsIdleGCTaskNeeded(Runtime());
   }
 
  public:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the tor-commits mailing list