Bug 1350050: Remove unneeded nsTextFrame casts in ContentEventHandler. r?smaug draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Thu, 23 Mar 2017 20:41:58 +0100
changeset 503914 d0cfca71c2d2977866437dfea3621a95f08e5e49
parent 503906 200182ef115692c4ed2909f1a8beae8a6f19d127
child 550546 8285525a3673a9e5caa8803c1bba9ee2e9e81b1e
push id50703
push userbmo:emilio+bugs@crisal.io
push dateThu, 23 Mar 2017 19:44:37 +0000
reviewerssmaug
bugs1350050
milestone55.0a1
Bug 1350050: Remove unneeded nsTextFrame casts in ContentEventHandler. r?smaug MozReview-Commit-ID: FcSYAuQSHUt
dom/events/ContentEventHandler.cpp
--- a/dom/events/ContentEventHandler.cpp
+++ b/dom/events/ContentEventHandler.cpp
@@ -771,36 +771,41 @@ ContentEventHandler::AppendFontRanges(Fo
   nsIFrame* frame = aContent->GetPrimaryFrame();
   if (!frame) {
     // It is a non-rendered content, create an empty range for it.
     AppendFontRange(aFontRanges, aBaseOffset);
     return;
   }
 
   int32_t baseOffset = aBaseOffset;
-  nsTextFrame* curr = do_QueryFrame(frame);
-  MOZ_ASSERT(curr, "Not a text frame");
+#ifdef DEBUG
+  {
+    nsTextFrame* text = do_QueryFrame(frame);
+    MOZ_ASSERT(text, "Not a text frame");
+  }
+#endif
+  auto* curr = static_cast<nsTextFrame*>(frame);
   while (curr) {
     int32_t frameXPStart = std::max(curr->GetContentOffset(), aXPStartOffset);
     int32_t frameXPEnd = std::min(curr->GetContentEnd(), aXPEndOffset);
     if (frameXPStart >= frameXPEnd) {
-      curr = static_cast<nsTextFrame*>(curr->GetNextContinuation());
+      curr = curr->GetNextContinuation();
       continue;
     }
 
     gfxSkipCharsIterator iter = curr->EnsureTextRun(nsTextFrame::eInflated);
     gfxTextRun* textRun = curr->GetTextRun(nsTextFrame::eInflated);
 
     nsTextFrame* next = nullptr;
     if (frameXPEnd < aXPEndOffset) {
-      next = static_cast<nsTextFrame*>(curr->GetNextContinuation());
+      next = curr->GetNextContinuation();
       while (next && next->GetTextRun(nsTextFrame::eInflated) == textRun) {
         frameXPEnd = std::min(next->GetContentEnd(), aXPEndOffset);
         next = frameXPEnd < aXPEndOffset ?
-          static_cast<nsTextFrame*>(next->GetNextContinuation()) : nullptr;
+          next->GetNextContinuation() : nullptr;
       }
     }
 
     gfxTextRun::Range skipRange(iter.ConvertOriginalToSkipped(frameXPStart),
                                 iter.ConvertOriginalToSkipped(frameXPEnd));
     gfxTextRun::GlyphRunIterator runIter(textRun, skipRange);
     int32_t lastXPEndOffset = frameXPStart;
     while (runIter.NextRun()) {