Bug 1478879 - Remove Range/Enum use in XPConnect. r=mccr8 draft
authorNicholas Nethercote <nnethercote@mozilla.com>
Tue, 31 Jul 2018 10:31:00 +1000
changeset 825240 b124b8263c9abf43d953469cca02597feba8b316
parent 825239 8e4de81ff4b2f8ba38c80be362440b02fbec0c5a
push id118039
push usernnethercote@mozilla.com
push dateWed, 01 Aug 2018 03:07:33 +0000
reviewersmccr8
bugs1478879
milestone63.0a1
Bug 1478879 - Remove Range/Enum use in XPConnect. r=mccr8 MozReview-Commit-ID: rwGQAyAwBe
js/xpconnect/src/XPCMaps.cpp
js/xpconnect/src/XPCMaps.h
--- a/js/xpconnect/src/XPCMaps.cpp
+++ b/js/xpconnect/src/XPCMaps.cpp
@@ -44,45 +44,45 @@ HashNativeKey(const void* data)
 
 void
 JSObject2WrappedJSMap::UpdateWeakPointersAfterGC()
 {
     // Check all wrappers and update their JSObject pointer if it has been
     // moved. Release any wrappers whose weakly held JSObject has died.
 
     nsTArray<RefPtr<nsXPCWrappedJS>> dying;
-    for (Map::Enum e(mTable); !e.empty(); e.popFront()) {
-        nsXPCWrappedJS* wrapper = e.front().value();
+    for (auto iter = mTable.modIter(); !iter.done(); iter.next()) {
+        nsXPCWrappedJS* wrapper = iter.get().value();
         MOZ_ASSERT(wrapper, "found a null JS wrapper!");
 
         // Walk the wrapper chain and update all JSObjects.
         while (wrapper) {
             if (wrapper->IsSubjectToFinalization()) {
                 wrapper->UpdateObjectPointerAfterGC();
                 if (!wrapper->GetJSObjectPreserveColor())
                     dying.AppendElement(dont_AddRef(wrapper));
             }
             wrapper = wrapper->GetNextWrapper();
         }
 
         // Remove or update the JSObject key in the table if necessary.
-        JSObject* obj = e.front().key().unbarrieredGet();
+        JSObject* obj = iter.get().key().unbarrieredGet();
         JS_UpdateWeakPointerAfterGCUnbarriered(&obj);
         if (!obj)
-            e.removeFront();
+            iter.remove();
         else
-            e.front().mutableKey() = obj;
+            iter.get().mutableKey() = obj;
     }
 }
 
 void
 JSObject2WrappedJSMap::ShutdownMarker()
 {
-    for (Map::Range r = mTable.all(); !r.empty(); r.popFront()) {
-        nsXPCWrappedJS* wrapper = r.front().value();
+    for (auto iter = mTable.iter(); !iter.done(); iter.next()) {
+        nsXPCWrappedJS* wrapper = iter.get().value();
         MOZ_ASSERT(wrapper, "found a null JS wrapper!");
         MOZ_ASSERT(wrapper->IsValid(), "found an invalid JS wrapper!");
         wrapper->SystemIsBeingShutDown();
     }
 }
 
 size_t
 JSObject2WrappedJSMap::SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const
@@ -91,18 +91,18 @@ JSObject2WrappedJSMap::SizeOfIncludingTh
     n += mTable.shallowSizeOfExcludingThis(mallocSizeOf);
     return n;
 }
 
 size_t
 JSObject2WrappedJSMap::SizeOfWrappedJS(mozilla::MallocSizeOf mallocSizeOf) const
 {
     size_t n = 0;
-    for (Map::Range r = mTable.all(); !r.empty(); r.popFront())
-        n += r.front().value()->SizeOfIncludingThis(mallocSizeOf);
+    for (auto iter = mTable.iter(); !iter.done(); iter.next())
+        n += iter.get().value()->SizeOfIncludingThis(mallocSizeOf);
     return n;
 }
 
 /***************************************************************************/
 // implement Native2WrappedNativeMap...
 
 // static
 Native2WrappedNativeMap*
--- a/js/xpconnect/src/XPCMaps.h
+++ b/js/xpconnect/src/XPCMaps.h
@@ -47,18 +47,18 @@ public:
     inline nsXPCWrappedJS* Find(JSObject* Obj) {
         MOZ_ASSERT(Obj,"bad param");
         Map::Ptr p = mTable.lookup(Obj);
         return p ? p->value() : nullptr;
     }
 
 #ifdef DEBUG
     inline bool HasWrapper(nsXPCWrappedJS* wrapper) {
-        for (auto r = mTable.all(); !r.empty(); r.popFront()) {
-            if (r.front().value() == wrapper)
+        for (auto iter = mTable.iter(); !iter.done(); iter.next()) {
+            if (iter.get().value() == wrapper)
                 return true;
         }
         return false;
     }
 #endif
 
     inline nsXPCWrappedJS* Add(JSContext* cx, nsXPCWrappedJS* wrapper) {
         MOZ_ASSERT(wrapper,"bad param");
@@ -74,18 +74,18 @@ public:
     inline void Remove(nsXPCWrappedJS* wrapper) {
         MOZ_ASSERT(wrapper,"bad param");
         mTable.remove(wrapper->GetJSObjectPreserveColor());
     }
 
     inline uint32_t Count() {return mTable.count();}
 
     inline void Dump(int16_t depth) {
-        for (Map::Range r = mTable.all(); !r.empty(); r.popFront())
-            r.front().value()->DebugDump(depth);
+        for (auto iter = mTable.iter(); !iter.done(); iter.next())
+            iter.get().value()->DebugDump(depth);
     }
 
     void UpdateWeakPointersAfterGC();
 
     void ShutdownMarker();
 
     size_t SizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const;