mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1153649 part 2 - Use some OwningNonNull in editor; r=ehsan
This commit is contained in:
parent
b198a7bacc
commit
4ba092dd2c
@ -958,9 +958,8 @@ nsHTMLEditRules::GetIndentState(bool *aCanIndent, bool *aCanOutdent)
|
||||
*aCanOutdent = false;
|
||||
|
||||
// get selection
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
nsRefPtr<Selection> selection = mHTMLEditor->GetSelection();
|
||||
NS_ENSURE_STATE(selection);
|
||||
NS_ENSURE_STATE(mHTMLEditor && mHTMLEditor->GetSelection());
|
||||
OwningNonNull<Selection> selection = *mHTMLEditor->GetSelection();
|
||||
|
||||
// contruct a list of nodes to act on.
|
||||
nsCOMArray<nsIDOMNode> arrayOfNodes;
|
||||
@ -2006,7 +2005,7 @@ nsHTMLEditRules::WillDeleteSelection(Selection* aSelection,
|
||||
|
||||
if (wsType == WSType::text) {
|
||||
// Found normal text to delete.
|
||||
nsRefPtr<Text> nodeAsText = visNode->GetAsText();
|
||||
OwningNonNull<Text> nodeAsText = *visNode->GetAsText();
|
||||
int32_t so = visOffset;
|
||||
int32_t eo = visOffset + 1;
|
||||
if (aAction == nsIEditor::ePrevious) {
|
||||
@ -2040,7 +2039,7 @@ nsHTMLEditRules::WillDeleteSelection(Selection* aSelection,
|
||||
address_of(visNode), &so, address_of(visNode), &eo);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
res = mHTMLEditor->DeleteText(*nodeAsText, std::min(so, eo),
|
||||
res = mHTMLEditor->DeleteText(nodeAsText, std::min(so, eo),
|
||||
DeprecatedAbs(eo - so));
|
||||
*aHandled = true;
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
@ -2429,7 +2428,7 @@ nsHTMLEditRules::WillDeleteSelection(Selection* aSelection,
|
||||
|
||||
uint32_t rangeCount = aSelection->RangeCount();
|
||||
for (uint32_t rangeIdx = 0; rangeIdx < rangeCount; ++rangeIdx) {
|
||||
nsRefPtr<nsRange> range = aSelection->GetRangeAt(rangeIdx);
|
||||
OwningNonNull<nsRange> range = *aSelection->GetRangeAt(rangeIdx);
|
||||
|
||||
// Build a list of nodes in the range
|
||||
nsTArray<nsCOMPtr<nsINode>> arrayOfNodes;
|
||||
@ -2474,19 +2473,19 @@ nsHTMLEditRules::WillDeleteSelection(Selection* aSelection,
|
||||
if (startNode->GetAsText() &&
|
||||
startNode->Length() > uint32_t(startOffset)) {
|
||||
// Delete to last character
|
||||
nsRefPtr<nsGenericDOMDataNode> dataNode =
|
||||
static_cast<nsGenericDOMDataNode*>(startNode.get());
|
||||
OwningNonNull<nsGenericDOMDataNode> dataNode =
|
||||
*static_cast<nsGenericDOMDataNode*>(startNode.get());
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
res = mHTMLEditor->DeleteText(*dataNode, startOffset,
|
||||
res = mHTMLEditor->DeleteText(dataNode, startOffset,
|
||||
startNode->Length() - startOffset);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
}
|
||||
if (endNode->GetAsText() && endOffset) {
|
||||
// Delete to first character
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
nsRefPtr<nsGenericDOMDataNode> dataNode =
|
||||
static_cast<nsGenericDOMDataNode*>(endNode.get());
|
||||
res = mHTMLEditor->DeleteText(*dataNode, 0, endOffset);
|
||||
OwningNonNull<nsGenericDOMDataNode> dataNode =
|
||||
*static_cast<nsGenericDOMDataNode*>(endNode.get());
|
||||
res = mHTMLEditor->DeleteText(dataNode, 0, endOffset);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
}
|
||||
|
||||
@ -3056,7 +3055,7 @@ nsHTMLEditRules::WillMakeList(Selection* aSelection,
|
||||
if (!aSelection || !aListType || !aCancel || !aHandled) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
nsCOMPtr<nsIAtom> listType = do_GetAtom(*aListType);
|
||||
OwningNonNull<nsIAtom> listType = do_GetAtom(*aListType);
|
||||
|
||||
nsresult res = WillInsert(aSelection, aCancel);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
@ -3126,11 +3125,11 @@ nsHTMLEditRules::WillMakeList(Selection* aSelection,
|
||||
|
||||
// make sure we can put a list here
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
if (!mHTMLEditor->CanContainTag(*parent, *listType)) {
|
||||
if (!mHTMLEditor->CanContainTag(*parent, listType)) {
|
||||
*aCancel = true;
|
||||
return NS_OK;
|
||||
}
|
||||
res = SplitAsNeeded(*listType, parent, offset);
|
||||
res = SplitAsNeeded(listType, parent, offset);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
nsCOMPtr<Element> theList =
|
||||
@ -3300,7 +3299,7 @@ nsHTMLEditRules::WillMakeList(Selection* aSelection,
|
||||
|
||||
// need to make a list to put things in if we haven't already,
|
||||
if (!curList) {
|
||||
res = SplitAsNeeded(*listType, curParent, offset);
|
||||
res = SplitAsNeeded(listType, curParent, offset);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
curList = mHTMLEditor->CreateNode(listType, curParent, offset);
|
||||
@ -3442,7 +3441,7 @@ nsHTMLEditRules::WillMakeBasicBlock(Selection* aSelection,
|
||||
bool *aCancel,
|
||||
bool *aHandled)
|
||||
{
|
||||
nsCOMPtr<nsIAtom> blockType = do_GetAtom(*aBlockType);
|
||||
OwningNonNull<nsIAtom> blockType = do_GetAtom(*aBlockType);
|
||||
if (!aSelection || !aCancel || !aHandled) { return NS_ERROR_NULL_POINTER; }
|
||||
// initialize out param
|
||||
*aCancel = false;
|
||||
@ -3553,7 +3552,7 @@ nsHTMLEditRules::WillMakeBasicBlock(Selection* aSelection,
|
||||
arrayOfNodes.RemoveObject(brNode);
|
||||
}
|
||||
// make sure we can put a block here
|
||||
res = SplitAsNeeded(*blockType, parent, offset);
|
||||
res = SplitAsNeeded(blockType, parent, offset);
|
||||
NS_ENSURE_SUCCESS(res, res);
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
theBlock = dont_AddRef(GetAsDOMNode(
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#include "nsWSRunObject.h"
|
||||
|
||||
#include "mozilla/dom/OwningNonNull.h"
|
||||
#include "mozilla/Assertions.h"
|
||||
#include "mozilla/Casting.h"
|
||||
#include "mozilla/mozalloc.h"
|
||||
@ -605,13 +606,13 @@ already_AddRefed<nsINode>
|
||||
nsWSRunObject::GetWSBoundingParent()
|
||||
{
|
||||
NS_ENSURE_TRUE(mNode, nullptr);
|
||||
nsCOMPtr<nsINode> wsBoundingParent = mNode;
|
||||
OwningNonNull<nsINode> wsBoundingParent = *mNode;
|
||||
while (!IsBlockNode(wsBoundingParent)) {
|
||||
nsCOMPtr<nsINode> parent = wsBoundingParent->GetParentNode();
|
||||
if (!parent || !mHTMLEditor->IsEditable(parent)) {
|
||||
break;
|
||||
}
|
||||
wsBoundingParent.swap(parent);
|
||||
wsBoundingParent = parent;
|
||||
}
|
||||
return wsBoundingParent.forget();
|
||||
}
|
||||
@ -1013,7 +1014,7 @@ nsWSRunObject::GetPreviousWSNodeInner(nsINode* aStartNode,
|
||||
MOZ_ASSERT(aStartNode && aBlockParent);
|
||||
|
||||
nsCOMPtr<nsIContent> priorNode = aStartNode->GetPreviousSibling();
|
||||
nsCOMPtr<nsINode> curNode = aStartNode;
|
||||
OwningNonNull<nsINode> curNode = *aStartNode;
|
||||
while (!priorNode) {
|
||||
// We have exhausted nodes in parent of aStartNode.
|
||||
nsCOMPtr<nsINode> curParent = curNode->GetParentNode();
|
||||
|
Loading…
Reference in New Issue
Block a user