Bug 1478879 - Remove Range/Enum use in XPConnect. r=mccr8
MozReview-Commit-ID: rwGQAyAwBe
--- 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;