Bug 1404854 Part 1 - Move null pointers checking from DragCaretInternal() to DragCaret().
We don't need to check GetFrameSelection() because valid GetSelection()
implies valid GetFrameSelection().
MozReview-Commit-ID: 9WH7HxN27yF
--- a/layout/base/AccessibleCaretManager.cpp
+++ b/layout/base/AccessibleCaretManager.cpp
@@ -501,16 +501,20 @@ AccessibleCaretManager::PressCaret(const
}
nsresult
AccessibleCaretManager::DragCaret(const nsPoint& aPoint)
{
MOZ_ASSERT(mActiveCaret);
MOZ_ASSERT(GetCaretMode() != CaretMode::None);
+ if (!mPresShell || !mPresShell->GetRootFrame() || !GetSelection()) {
+ return NS_ERROR_NULL_POINTER;
+ }
+
nsPoint point(aPoint.x, aPoint.y + mOffsetYToCaretLogicalPosition);
DragCaretInternal(point);
UpdateCarets();
return NS_OK;
}
nsresult
AccessibleCaretManager::ReleaseCaret()
@@ -1205,39 +1209,33 @@ AccessibleCaretManager::CompareTreePosit
{
return (aStartFrame && aEndFrame &&
nsLayoutUtils::CompareTreePosition(aStartFrame, aEndFrame) <= 0);
}
nsresult
AccessibleCaretManager::DragCaretInternal(const nsPoint& aPoint)
{
- if (!mPresShell) {
- return NS_ERROR_NULL_POINTER;
- }
+ MOZ_ASSERT(mPresShell);
nsIFrame* rootFrame = mPresShell->GetRootFrame();
- if (!rootFrame) {
- return NS_ERROR_NULL_POINTER;
- }
+ MOZ_ASSERT(rootFrame, "We need root frame to compute caret dragging!");
nsPoint point = AdjustDragBoundary(aPoint);
// Find out which content we point to
nsIFrame* ptFrame = nsLayoutUtils::GetFrameForPoint(
rootFrame, point,
nsLayoutUtils::IGNORE_PAINT_SUPPRESSION | nsLayoutUtils::IGNORE_CROSS_DOC);
if (!ptFrame) {
return NS_ERROR_FAILURE;
}
RefPtr<nsFrameSelection> fs = GetFrameSelection();
- if (!fs) {
- return NS_ERROR_NULL_POINTER;
- }
+ MOZ_ASSERT(fs);
nsresult result;
nsIFrame* newFrame = nullptr;
nsPoint newPoint;
nsPoint ptInFrame = point;
nsLayoutUtils::TransformPoint(rootFrame, ptFrame, ptInFrame);
result = fs->ConstrainFrameAndPointToAnchorSubtree(ptFrame, ptInFrame,
&newFrame, newPoint);
@@ -1251,19 +1249,17 @@ AccessibleCaretManager::DragCaretInterna
nsIFrame::ContentOffsets offsets =
newFrame->GetContentOffsetsFromPoint(newPoint);
if (offsets.IsNull()) {
return NS_ERROR_FAILURE;
}
Selection* selection = GetSelection();
- if (!selection) {
- return NS_ERROR_NULL_POINTER;
- }
+ MOZ_ASSERT(selection);
if (GetCaretMode() == CaretMode::Selection &&
!RestrictCaretDraggingOffsets(offsets)) {
return NS_ERROR_FAILURE;
}
ClearMaintainedSelection();