Bug 1382568: Use range-based for loop instead of array indexing in IsOrHasAncestorWithDisplayNone. r?heycam draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Sun, 30 Jul 2017 04:13:48 +0200
changeset 618092 089af53e9b05d174f370b91ea91dff5fbec8eae9
parent 618091 ff64d25b39a4e3e70fa8490a26d35005fe864c36
child 618093 73f64f756c1ebd5ce704d8e924a8dfd3476bf86e
child 618098 4f7fc95b705709ef3a6d0a2a8bc53a852f4891a2
push id71214
push userbmo:emilio+bugs@crisal.io
push dateSun, 30 Jul 2017 02:16:14 +0000
reviewersheycam
bugs1382568
milestone56.0a1
Bug 1382568: Use range-based for loop instead of array indexing in IsOrHasAncestorWithDisplayNone. r?heycam MozReview-Commit-ID: H8Gbh523eoO
dom/html/nsGenericHTMLElement.cpp
--- a/dom/html/nsGenericHTMLElement.cpp
+++ b/dom/html/nsGenericHTMLElement.cpp
@@ -2987,24 +2987,23 @@ IsOrHasAncestorWithDisplayNone(Element* 
     }
     elementsToCheck.AppendElement(e);
   }
 
   if (elementsToCheck.IsEmpty()) {
     return false;
   }
 
-  // XXXbholley: This could be done more directly with Servo's style system.
   StyleSetHandle styleSet = aPresShell->StyleSet();
   RefPtr<nsStyleContext> sc;
-  for (int32_t i = elementsToCheck.Length() - 1; i >= 0; --i) {
+  for (auto* element : Reversed(elementsToCheck)) {
     if (sc) {
-      sc = styleSet->ResolveStyleFor(elementsToCheck[i], sc, LazyComputeBehavior::Assert);
+      sc = styleSet->ResolveStyleFor(element, sc, LazyComputeBehavior::Assert);
     } else {
-      sc = nsComputedDOMStyle::GetStyleContextNoFlush(elementsToCheck[i],
+      sc = nsComputedDOMStyle::GetStyleContextNoFlush(element,
                                                       nullptr, aPresShell);
     }
     if (sc->StyleDisplay()->mDisplay == StyleDisplay::None) {
       return true;
     }
   }
 
   return false;