Bug 1357716 - stylo: Don't return uninitialized pointers from GetCSSStyleRules. r=xidorn draft
authorMatt Brubeck <mbrubeck@mozilla.com>
Thu, 18 May 2017 14:50:05 -0700
changeset 580730 7565f4aeee5a6bf2b134d0b05981cc18038247db
parent 580489 cc65f9233e5b16265ae44b643c7d255556da14fb
child 629373 8d22fa868ebbe8118ea681e53898555de8137e9b
push id59650
push userbmo:mbrubeck@mozilla.com
push dateThu, 18 May 2017 22:36:32 +0000
reviewersxidorn
bugs1357716
milestone55.0a1
Bug 1357716 - stylo: Don't return uninitialized pointers from GetCSSStyleRules. r=xidorn MozReview-Commit-ID: JPj6d27PALc
layout/inspector/inDOMUtils.cpp
--- a/layout/inspector/inDOMUtils.cpp
+++ b/layout/inspector/inDOMUtils.cpp
@@ -294,21 +294,25 @@ inDOMUtils::GetCSSStyleRules(nsIDOMEleme
         // Generate the map from raw rules to rules.
         ruleList->FillStyleRuleHashtable(rawRulesToRules);
       }
     }
 
     // Find matching rules in the table.
     for (size_t j = 0; j < rawRuleCount; j++) {
       const RawServoStyleRule* rawRule = rawRuleList.ElementAt(j);
-      ServoStyleRule* rule;
-      rawRulesToRules.Get(rawRule, &rule);
-      MOZ_ASSERT(rule, "We should always be able to map a raw rule to a rule.");
-      RefPtr<css::Rule> ruleObj(rule);
-      rules->AppendElement(ruleObj, false);
+      ServoStyleRule* rule = nullptr;
+      if (rawRulesToRules.Get(rawRule, &rule)) {
+        MOZ_ASSERT(rule, "rule should not be null");
+        RefPtr<css::Rule> ruleObj(rule);
+        rules->AppendElement(ruleObj, false);
+      } else {
+        // FIXME (bug 1359217): Need a reliable way to map raw rules to rules.
+        NS_WARNING("stylo: Could not map raw rule to a rule.");
+      }
     }
   }
 
   rules.forget(_retval);
 
   return NS_OK;
 }