Bug 1367683 - Optimize initializing nsRange

Tag #1375
This commit is contained in:
Matt A. Tobin 2020-04-17 05:28:43 -04:00 committed by Roy Tam
commit 9d8343e19c
16 changed files with 330 additions and 205 deletions

View file

@ -2449,13 +2449,17 @@ CloneRangeToSelection(nsRange* aRange, nsIDocument* aDoc,
NS_ENSURE_TRUE_VOID(newStart && newEnd);
nsCOMPtr<nsINode> newStartNode = do_QueryInterface(newStart);
NS_ENSURE_TRUE_VOID(newStartNode);
nsCOMPtr<nsINode> newEndNode = do_QueryInterface(newEnd);
if (NS_WARN_IF(!newStartNode) || NS_WARN_IF(!newEndNode)) {
return;
}
RefPtr<nsRange> range = new nsRange(newStartNode);
nsresult rv = range->SetStart(newStartNode, startOffset);
NS_ENSURE_SUCCESS_VOID(rv);
rv = range->SetEnd(newEnd, endOffset);
NS_ENSURE_SUCCESS_VOID(rv);
nsresult rv =
range->SetStartAndEnd(newStartNode, startOffset, newEndNode, endOffset);
if (NS_WARN_IF(NS_FAILED(rv))) {
return;
}
aSelection->AddRange(range);
}