From 2af7dd232841a0e9c6b4df5c3ab524429a744074 Mon Sep 17 00:00:00 2001 From: "brade%netscape.com" Date: Mon, 30 Jun 2003 18:55:06 +0000 Subject: [PATCH] code cleanup continued; r=timeless, sr=kin, bug=209548 git-svn-id: svn://10.0.0.236/trunk@144283 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/editor/libeditor/base/nsEditor.cpp | 338 ++++++++------------- 1 file changed, 131 insertions(+), 207 deletions(-) diff --git a/mozilla/editor/libeditor/base/nsEditor.cpp b/mozilla/editor/libeditor/base/nsEditor.cpp index dc919551d19..648c5a74042 100644 --- a/mozilla/editor/libeditor/base/nsEditor.cpp +++ b/mozilla/editor/libeditor/base/nsEditor.cpp @@ -40,6 +40,8 @@ #include "pratom.h" #include "nsIDOMDocument.h" +#include "nsIDOMHTMLDocument.h" +#include "nsIDOMHTMLElement.h" #include "nsIPrefBranch.h" #include "nsIPrefService.h" #include "nsUnicharUtils.h" @@ -71,7 +73,7 @@ #include "nsIKBStateControl.h" #include "nsIWidget.h" #include "nsIPlaintextEditor.h" -#include "nsGUIEvent.h" +#include "nsGUIEvent.h" // nsTextEventReply #include "nsIFrame.h" // Needed by IME code @@ -1769,23 +1771,14 @@ NS_IMETHODIMP nsEditor::DebugDumpContent() { #ifdef DEBUG - nsCOMPtrcontent; - nsCOMPtrnodeList; - nsCOMPtr doc = do_QueryReferent(mDocWeak); + nsCOMPtr doc = do_QueryReferent(mDocWeak); if (!doc) return NS_ERROR_NOT_INITIALIZED; - doc->GetElementsByTagName(NS_LITERAL_STRING("body"), getter_AddRefs(nodeList)); - if (nodeList) - { - PRUint32 count; - nodeList->GetLength(&count); - NS_ASSERTION(1==count, "there is not exactly 1 body in the document!"); - nsCOMPtrbodyNode; - nodeList->Item(0, getter_AddRefs(bodyNode)); - if (bodyNode) { - content = do_QueryInterface(bodyNode); - } - } - content->List(); + + nsCOMPtrbodyElem; + doc->GetBody(getter_AddRefs(bodyElem)); + nsCOMPtr content = do_QueryInterface(bodyElem); + if (content) + content->List(); #endif return NS_OK; } @@ -2108,43 +2101,23 @@ nsEditor::GetRootElement(nsIDOMElement **aBodyElement) } NS_PRECONDITION(mDocWeak, "bad state, null mDocWeak"); - nsCOMPtr doc = do_QueryReferent(mDocWeak); + nsCOMPtr doc = do_QueryReferent(mDocWeak); if (!doc) return NS_ERROR_NOT_INITIALIZED; - nsresult result = NS_OK; - - nsCOMPtrnodeList; - result = doc->GetElementsByTagName(NS_LITERAL_STRING("body"), getter_AddRefs(nodeList)); - + nsCOMPtrbodyElement; + nsresult result = doc->GetBody(getter_AddRefs(bodyElement)); if (NS_FAILED(result)) return result; - - if (!nodeList) + + if (!bodyElement) return NS_ERROR_NULL_POINTER; - PRUint32 count; - nodeList->GetLength(&count); - - if (count < 1) - return NS_ERROR_FAILURE; - // Use the first body node in the list: - nsCOMPtr node; - result = nodeList->Item(0, getter_AddRefs(node)); - if (NS_SUCCEEDED(result) && node) - { - //return node->QueryInterface(NS_GET_IID(nsIDOMElement), (void **)aBodyElement); - // Is above equivalent to this: - nsCOMPtr bodyElement = do_QueryInterface(node); - if (bodyElement) - { - mBodyElement = do_QueryInterface(bodyElement); - *aBodyElement = bodyElement; - // A "getter" method should always addref - NS_ADDREF(*aBodyElement); - } - } - return result; + mBodyElement = do_QueryInterface(bodyElement); + *aBodyElement = bodyElement; + NS_ADDREF(*aBodyElement); + + return NS_OK; } @@ -2173,8 +2146,6 @@ NS_IMETHODIMP nsEditor::CloneAttribute(const nsAString & aAttribute, nsIDOMNode *aDestNode, nsIDOMNode *aSourceNode) { - nsresult rv = NS_OK; - if (!aDestNode || !aSourceNode) return NS_ERROR_NULL_POINTER; @@ -2185,10 +2156,10 @@ nsEditor::CloneAttribute(const nsAString & aAttribute, nsAutoString attrValue; PRBool isAttrSet; - rv = GetAttributeValue(sourceElement, - aAttribute, - attrValue, - &isAttrSet); + nsresult rv = GetAttributeValue(sourceElement, + aAttribute, + attrValue, + &isAttrSet); if (NS_FAILED(rv)) return rv; if (isAttrSet) @@ -2399,13 +2370,12 @@ NS_IMETHODIMP nsEditor::InsertTextImpl(const nsAString& aStringToInsert, } else { - nsCOMPtr newNode; // we are inserting text into a non-text node // first we have to create a textnode (this also populates it with the text) res = aDoc->CreateTextNode(aStringToInsert, getter_AddRefs(nodeAsText)); if (NS_FAILED(res)) return res; if (!nodeAsText) return NS_ERROR_NULL_POINTER; - newNode = do_QueryInterface(nodeAsText); + nsCOMPtr newNode = do_QueryInterface(nodeAsText); // then we insert it into the dom tree res = InsertNode(newNode, *aInOutNode, offset); if (NS_FAILED(res)) return res; @@ -2769,13 +2739,12 @@ NS_IMETHODIMP nsEditor::CreateTxnForJoinNode(nsIDOMNode *aLeftNode, nsIDOMNode *aRightNode, JoinElementTxn **aTxn) { - nsresult result=NS_ERROR_NULL_POINTER; - if ((nsnull != aLeftNode) && (nsnull != aRightNode)) - { - result = TransactionFactory::GetNewTransaction(JoinElementTxn::GetCID(), (EditTxn **)aTxn); - if (NS_SUCCEEDED(result)) { - result = (*aTxn)->Init(this, aLeftNode, aRightNode); - } + if (!aLeftNode || !aRightNode) + return NS_ERROR_NULL_POINTER; + + nsresult result = TransactionFactory::GetNewTransaction(JoinElementTxn::GetCID(), (EditTxn **)aTxn); + if (NS_SUCCEEDED(result)) { + result = (*aTxn)->Init(this, aLeftNode, aRightNode); } return result; } @@ -2800,12 +2769,12 @@ nsEditor::SplitNodeImpl(nsIDOMNode * aExistingRightNode, #ifdef NS_DEBUG_EDITOR if (gNoisy) { printf("SplitNodeImpl: left=%p, right=%p, offset=%d\n", (void*)aNewLeftNode, (void*)aExistingRightNode, aOffset); } #endif - - nsresult result; + NS_ASSERTION(((nsnull!=aExistingRightNode) && (nsnull!=aNewLeftNode) && (nsnull!=aParent)), "null arg"); + nsresult result; if ((nsnull!=aExistingRightNode) && (nsnull!=aNewLeftNode) && (nsnull!=aParent)) @@ -2924,30 +2893,34 @@ nsEditor::JoinNodesImpl(nsIDOMNode * aNodeToKeep, nsIDOMNode * aParent, PRBool aNodeToKeepIsFirst) { - nsresult result = NS_OK; NS_ASSERTION(aNodeToKeep && aNodeToJoin && aParent, "null arg"); + nsresult result; if (aNodeToKeep && aNodeToJoin && aParent) { // get selection nsCOMPtr selection; GetSelection(getter_AddRefs(selection)); - if (NS_FAILED(result)) return result; if (!selection) return NS_ERROR_NULL_POINTER; // remember some selection points - nsCOMPtr selStartNode, selEndNode, parent; + nsCOMPtr selStartNode, selEndNode; PRInt32 selStartOffset, selEndOffset, joinOffset, keepOffset; result = GetStartNodeAndOffset(selection, address_of(selStartNode), &selStartOffset); if (NS_FAILED(result)) selStartNode = nsnull; result = GetEndNodeAndOffset(selection, address_of(selEndNode), &selEndOffset); + // Joe or Kin should comment here on why the following line is not a copy/paste error if (NS_FAILED(result)) selStartNode = nsnull; - - + + nsCOMPtr leftNode; + if (aNodeToKeepIsFirst) + leftNode = aNodeToKeep; + else + leftNode = aNodeToJoin; + PRUint32 firstNodeLength; - nsCOMPtr leftNode = aNodeToJoin; - if (aNodeToKeepIsFirst) leftNode = aNodeToKeep; result = GetLengthOfDOMNode(leftNode, firstNodeLength); if (NS_FAILED(result)) return result; + nsCOMPtr parent; result = GetNodeLocation(aNodeToJoin, address_of(parent), &joinOffset); if (NS_FAILED(result)) return result; result = GetNodeLocation(aNodeToKeep, address_of(parent), &keepOffset); @@ -3050,7 +3023,6 @@ nsEditor::JoinNodesImpl(nsIDOMNode * aNodeToKeep, } else { // prepend children of aNodeToJoin - //was result = aNodeToKeep->InsertBefore(childNode, firstNode, getter_AddRefs(resultNode)); result = aNodeToKeep->InsertBefore(childNode, firstNode, getter_AddRefs(resultNode)); firstNode = do_QueryInterface(childNode); } @@ -3133,8 +3105,7 @@ nsEditor::GetChildOffset(nsIDOMNode *aChild, nsIDOMNode *aParent, PRInt32 &aOffs nsCOMPtr content = do_QueryInterface(aParent); nsCOMPtr cChild = do_QueryInterface(aChild); if (!cChild || !content) return NS_ERROR_NULL_POINTER; - nsresult res = content->IndexOf(cChild, aOffset); - return res; + return content->IndexOf(cChild, aOffset); } nsresult @@ -3161,8 +3132,7 @@ nsEditor::GetLengthOfDOMNode(nsIDOMNode *aNode, PRUint32 &aCount) aCount = 0; if (!aNode) { return NS_ERROR_NULL_POINTER; } nsresult result=NS_OK; - nsCOMPtrnodeAsChar; - nodeAsChar = do_QueryInterface(aNode); + nsCOMPtrnodeAsChar = do_QueryInterface(aNode); if (nodeAsChar) { nodeAsChar->GetLength(&aCount); } @@ -3170,7 +3140,7 @@ nsEditor::GetLengthOfDOMNode(nsIDOMNode *aNode, PRUint32 &aCount) { PRBool hasChildNodes; aNode->HasChildNodes(&hasChildNodes); - if (PR_TRUE==hasChildNodes) + if (hasChildNodes) { nsCOMPtrnodeList; result = aNode->GetChildNodes(getter_AddRefs(nodeList)); @@ -3192,7 +3162,6 @@ nsEditor::GetPriorNode(nsIDOMNode *aParentNode, { // just another version of GetPriorNode that takes a {parent, offset} // instead of a node - nsresult result = NS_OK; if (!aParentNode || !aResultNode) { return NS_ERROR_NULL_POINTER; } *aResultNode = nsnull; @@ -3201,35 +3170,27 @@ nsEditor::GetPriorNode(nsIDOMNode *aParentNode, { if (bNoBlockCrossing && IsBlockNode(aParentNode)) { - // if we aren't allowed to cross blocks, dont look before this block - return result; + // if we aren't allowed to cross blocks, don't look before this block + return NS_OK; } return GetPriorNode(aParentNode, aEditableNode, aResultNode, bNoBlockCrossing); } - else - { - // else look before the child at 'aOffset' - nsCOMPtr child = GetChildAt(aParentNode, aOffset); - if (child) - return GetPriorNode(child, aEditableNode, aResultNode, bNoBlockCrossing); - // unless there isn't one, in which case we are at the end of the node - // and want the deep-right child. - else - { - *aResultNode = GetRightmostChild(aParentNode, bNoBlockCrossing); - if (!*aResultNode) return result; - if (!aEditableNode) return result; - if (IsEditable(*aResultNode)) return result; - else - { - // restart the search from the non-editable node we just found - nsCOMPtr notEditableNode = do_QueryInterface(*aResultNode); - return GetPriorNode(notEditableNode, aEditableNode, aResultNode, bNoBlockCrossing); - } - } - } -} + // else look before the child at 'aOffset' + nsCOMPtr child = GetChildAt(aParentNode, aOffset); + if (child) + return GetPriorNode(child, aEditableNode, aResultNode, bNoBlockCrossing); + + // unless there isn't one, in which case we are at the end of the node + // and want the deep-right child. + *aResultNode = GetRightmostChild(aParentNode, bNoBlockCrossing); + if (!*aResultNode || !aEditableNode || IsEditable(*aResultNode)) + return NS_OK; + + // restart the search from the non-editable node we just found + nsCOMPtr notEditableNode = do_QueryInterface(*aResultNode); + return GetPriorNode(notEditableNode, aEditableNode, aResultNode, bNoBlockCrossing); +} nsresult @@ -3241,11 +3202,10 @@ nsEditor::GetNextNode(nsIDOMNode *aParentNode, { // just another version of GetNextNode that takes a {parent, offset} // instead of a node - nsresult result = NS_OK; if (!aParentNode || !aResultNode) { return NS_ERROR_NULL_POINTER; } *aResultNode = nsnull; - + // if aParentNode is a text node, use it's location instead if (IsTextNode(aParentNode)) { @@ -3261,44 +3221,39 @@ nsEditor::GetNextNode(nsIDOMNode *aParentNode, if (bNoBlockCrossing && IsBlockNode(child)) { *aResultNode = child; // return this block - return result; + return NS_OK; } *aResultNode = GetLeftmostChild(child, bNoBlockCrossing); if (!*aResultNode) { *aResultNode = child; - return result; + return NS_OK; } if (!IsDescendantOfBody(*aResultNode)) { *aResultNode = nsnull; - return result; - } - if (!aEditableNode) return result; - if (IsEditable(*aResultNode)) return result; - else - { - // restart the search from the non-editable node we just found - nsCOMPtr notEditableNode = do_QueryInterface(*aResultNode); - return GetNextNode(notEditableNode, aEditableNode, aResultNode, bNoBlockCrossing); + return NS_OK; } + + if (!aEditableNode || IsEditable(*aResultNode)) + return NS_OK; + + // restart the search from the non-editable node we just found + nsCOMPtr notEditableNode = do_QueryInterface(*aResultNode); + return GetNextNode(notEditableNode, aEditableNode, aResultNode, bNoBlockCrossing); } // unless there isn't one, in which case we are at the end of the node // and want the next one. - else + if (bNoBlockCrossing && IsBlockNode(aParentNode)) { - if (bNoBlockCrossing && IsBlockNode(aParentNode)) - { - // dont cross out of parent block - return result; - } - return GetNextNode(aParentNode, aEditableNode, aResultNode, bNoBlockCrossing); + // don't cross out of parent block + return NS_OK; } + return GetNextNode(aParentNode, aEditableNode, aResultNode, bNoBlockCrossing); } - nsresult nsEditor::GetPriorNode(nsIDOMNode *aCurrentNode, PRBool aEditableNode, @@ -3326,7 +3281,6 @@ nsEditor::GetPriorNode(nsIDOMNode *aCurrentNode, if (!candidate) { // we could not find a prior node. return null. - *aResultNode = nsnull; return NS_OK; } else if (!aEditableNode) *aResultNode = candidate; @@ -3345,12 +3299,11 @@ nsEditor::GetPriorNodeImpl(nsIDOMNode *aCurrentNode, nsCOMPtr *aResultNode, PRBool bNoBlockCrossing) { - // called only by GetPriorNode so we dont need to check params. - nsresult result; + // called only by GetPriorNode so we don't need to check params. // if aCurrentNode has a left sibling, return that sibling's rightmost child (or itself if it has no children) nsCOMPtr prevSibling; - result = aCurrentNode->GetPreviousSibling(getter_AddRefs(prevSibling)); + nsresult result = aCurrentNode->GetPreviousSibling(getter_AddRefs(prevSibling)); if ((NS_SUCCEEDED(result)) && prevSibling) { if (bNoBlockCrossing && IsBlockNode(prevSibling)) @@ -3418,7 +3371,6 @@ nsEditor::GetNextNode(nsIDOMNode *aCurrentNode, nsCOMPtr *aResultNode, PRBool bNoBlockCrossing) { - nsresult result; if (!aCurrentNode || !aResultNode) { return NS_ERROR_NULL_POINTER; } *aResultNode = nsnull; // init out-param @@ -3433,7 +3385,8 @@ nsEditor::GetNextNode(nsIDOMNode *aCurrentNode, } nsCOMPtr candidate; - result = GetNextNodeImpl(aCurrentNode, aEditableNode, address_of(candidate), bNoBlockCrossing); + nsresult result = GetNextNodeImpl(aCurrentNode, aEditableNode, + address_of(candidate), bNoBlockCrossing); if (NS_FAILED(result)) return result; if (!candidate) @@ -3459,12 +3412,11 @@ nsEditor::GetNextNodeImpl(nsIDOMNode *aCurrentNode, nsCOMPtr *aResultNode, PRBool bNoBlockCrossing) { - // called only by GetNextNode so we dont need to check params. - nsresult result; + // called only by GetNextNode so we don't need to check params. // if aCurrentNode has a right sibling, return that sibling's leftmost child (or itself if it has no children) nsCOMPtr nextSibling; - result = aCurrentNode->GetNextSibling(getter_AddRefs(nextSibling)); + nsresult result = aCurrentNode->GetNextSibling(getter_AddRefs(nextSibling)); if ((NS_SUCCEEDED(result)) && nextSibling) { if (bNoBlockCrossing && IsBlockNode(nextSibling)) @@ -3590,8 +3542,7 @@ nsEditor::IsBlockNode(nsIDOMNode *aNode) PRBool nsEditor::NodeIsType(nsIDOMNode *aNode, nsIAtom *aTag) { - nsCOMPtrelement; - element = do_QueryInterface(aNode); + nsCOMPtrelement = do_QueryInterface(aNode); if (element) { nsAutoString tag; @@ -3609,8 +3560,7 @@ nsEditor::NodeIsType(nsIDOMNode *aNode, nsIAtom *aTag) PRBool nsEditor::NodeIsType(nsIDOMNode *aNode, const nsAString &aTagStr) { - nsCOMPtrelement; - element = do_QueryInterface(aNode); + nsCOMPtrelement = do_QueryInterface(aNode); if (element) { nsAutoString tag, tagStr(aTagStr); @@ -3624,11 +3574,10 @@ nsEditor::NodeIsType(nsIDOMNode *aNode, const nsAString &aTagStr) PRBool nsEditor::CanContainTag(nsIDOMNode* aParent, const nsAString &aChildTag) { - nsAutoString parentStringTag; - nsCOMPtr parentElement = do_QueryInterface(aParent); if (!parentElement) return PR_FALSE; + nsAutoString parentStringTag; parentElement->GetTagName(parentStringTag); return TagCanContainTag(parentStringTag, aChildTag); } @@ -3659,9 +3608,9 @@ nsEditor::TagCanContainTag(const nsAString &aParentTag, const nsAString &aChildT PRInt32 childTagEnum, parentTagEnum; nsAutoString non_const_childTag(aChildTag); - nsAutoString non_const_parentTag(aParentTag); nsresult res = mDTD->StringTagToIntTag(non_const_childTag,&childTagEnum); if (NS_FAILED(res)) return PR_FALSE; + nsAutoString non_const_parentTag(aParentTag); res = mDTD->StringTagToIntTag(non_const_parentTag,&parentTagEnum); if (NS_FAILED(res)) return PR_FALSE; @@ -3745,8 +3694,7 @@ nsEditor::IsEditable(nsIDOMNode *aNode) // see if it has a frame. If so, we'll edit it. // special case for textnodes: frame must have width. - nsCOMPtr content; - content = do_QueryInterface(aNode); + nsCOMPtr content = do_QueryInterface(aNode); if (content) { nsIFrame *resultFrame; @@ -3781,8 +3729,7 @@ nsEditor::IsMozEditorBogusNode(nsIDOMNode *aNode) if (!aNode) return PR_FALSE; - nsCOMPtrelement; - element = do_QueryInterface(aNode); + nsCOMPtrelement = do_QueryInterface(aNode); if (element) { nsAutoString val; @@ -3814,14 +3761,14 @@ nsEditor::CountEditableChildren(nsIDOMNode *aNode, PRUint32 &outCount) nsresult res=NS_OK; PRBool hasChildNodes; aNode->HasChildNodes(&hasChildNodes); - if (PR_TRUE==hasChildNodes) + if (hasChildNodes) { nsCOMPtrnodeList; - PRUint32 len; - PRUint32 i; res = aNode->GetChildNodes(getter_AddRefs(nodeList)); if (NS_SUCCEEDED(res) && nodeList) { + PRUint32 i; + PRUint32 len; nodeList->GetLength(&len); for (i=0 ; i atom; - if (!aNode) { NS_NOTREACHED("null node passed to nsEditor::GetTag()"); return NS_ERROR_NULL_POINTER; } - atom = GetTag(aNode); + nsCOMPtr atom = GetTag(aNode); if (atom) { atom->ToString(outString); @@ -3943,10 +3888,7 @@ nsEditor::NodesSameType(nsIDOMNode *aNode1, nsIDOMNode *aNode2) nsCOMPtr atom1 = GetTag(aNode1); nsCOMPtr atom2 = GetTag(aNode2); - if (atom1.get() == atom2.get()) - return PR_TRUE; - - return PR_FALSE; + return (atom1 == atom2); } @@ -3963,10 +3905,7 @@ nsEditor::IsTextOrElementNode(nsIDOMNode *aNode) PRUint16 nodeType; aNode->GetNodeType(&nodeType); - if ((nodeType == nsIDOMNode::ELEMENT_NODE) || (nodeType == nsIDOMNode::TEXT_NODE)) - return PR_TRUE; - - return PR_FALSE; + return ((nodeType == nsIDOMNode::ELEMENT_NODE) || (nodeType == nsIDOMNode::TEXT_NODE)); } @@ -3985,10 +3924,7 @@ nsEditor::IsTextNode(nsIDOMNode *aNode) PRUint16 nodeType; aNode->GetNodeType(&nodeType); - if (nodeType == nsIDOMNode::TEXT_NODE) - return PR_TRUE; - - return PR_FALSE; + return (nodeType == nsIDOMNode::TEXT_NODE); } @@ -4050,18 +3986,18 @@ nsEditor::GetStartNodeAndOffset(nsISelection *aSelection, { if (!outStartNode || !outStartOffset || !aSelection) return NS_ERROR_NULL_POINTER; - + + // brade: set outStartNode to null or ? + + nsCOMPtrselPrivate(do_QueryInterface(aSelection)); nsCOMPtr enumerator; - nsresult result; - nsCOMPtr sel(aSelection); - nsCOMPtrselPrivate(do_QueryInterface(sel)); - result = selPrivate->GetEnumerator(getter_AddRefs(enumerator)); + nsresult result = selPrivate->GetEnumerator(getter_AddRefs(enumerator)); if (NS_FAILED(result) || !enumerator) return NS_ERROR_FAILURE; enumerator->First(); nsCOMPtr currentItem; - if ((NS_FAILED(enumerator->CurrentItem(getter_AddRefs(currentItem)))) || !currentItem) + if (NS_FAILED(enumerator->CurrentItem(getter_AddRefs(currentItem)))) return NS_ERROR_FAILURE; nsCOMPtr range( do_QueryInterface(currentItem) ); @@ -4089,16 +4025,15 @@ nsEditor::GetEndNodeAndOffset(nsISelection *aSelection, if (!outEndNode || !outEndOffset) return NS_ERROR_NULL_POINTER; + nsCOMPtrselPrivate(do_QueryInterface(aSelection)); nsCOMPtr enumerator; - nsCOMPtr sel(aSelection); - nsCOMPtrselPrivate(do_QueryInterface(sel)); nsresult result = selPrivate->GetEnumerator(getter_AddRefs(enumerator)); if (NS_FAILED(result) || !enumerator) return NS_ERROR_FAILURE; enumerator->First(); nsCOMPtr currentItem; - if ((NS_FAILED(enumerator->CurrentItem(getter_AddRefs(currentItem)))) || !currentItem) + if (NS_FAILED(enumerator->CurrentItem(getter_AddRefs(currentItem)))) return NS_ERROR_FAILURE; nsCOMPtr range( do_QueryInterface(currentItem) ); @@ -4125,7 +4060,6 @@ nsEditor::IsPreformatted(nsIDOMNode *aNode, PRBool *aResult) if (!aResult || !content) return NS_ERROR_NULL_POINTER; - if (!mPresShellWeak) return NS_ERROR_NOT_INITIALIZED; nsCOMPtr ps = do_QueryReferent(mPresShellWeak); if (!ps) return NS_ERROR_NOT_INITIALIZED; @@ -4171,7 +4105,6 @@ nsEditor::SplitNodeDeep(nsIDOMNode *aNode, nsCOMPtr *outRightNode) { if (!aNode || !aSplitPointParent || !outOffset) return NS_ERROR_NULL_POINTER; - nsCOMPtr nodeToSplit = do_QueryInterface(aSplitPointParent); nsCOMPtr tempNode, parentNode; PRInt32 offset = aSplitPointOffset; nsresult res; @@ -4179,6 +4112,7 @@ nsEditor::SplitNodeDeep(nsIDOMNode *aNode, if (outLeftNode) *outLeftNode = nsnull; if (outRightNode) *outRightNode = nsnull; + nsCOMPtr nodeToSplit = do_QueryInterface(aSplitPointParent); while (nodeToSplit) { // need to insert rules code call here to do things like @@ -4205,7 +4139,7 @@ nsEditor::SplitNodeDeep(nsIDOMNode *aNode, res = nodeToSplit->GetParentNode(getter_AddRefs(parentNode)); if (NS_FAILED(res)) return res; if (!parentNode) return NS_ERROR_FAILURE; - + if (!bDoSplit && offset) // must be "end of text node" case, we didn't split it, just move past it { offset = GetIndexOf(parentNode, nodeToSplit) +1; @@ -4442,18 +4376,16 @@ nsEditor::GetShouldTxnSetSelection() NS_IMETHODIMP nsEditor::DeleteSelectionImpl(nsIEditor::EDirection aAction) { - nsresult res; - - EditAggregateTxn *txn; - PRInt32 i; - nsIEditActionListener *listener; nsCOMPtrselection; - res = GetSelection(getter_AddRefs(selection)); + nsresult res = GetSelection(getter_AddRefs(selection)); if (NS_FAILED(res)) return res; + EditAggregateTxn *txn; res = CreateTxnForDeleteSelection(aAction, &txn); if (NS_FAILED(res)) return res; nsAutoRules beginRulesSniffing(this, kOpDeleteSelection, aAction); + PRInt32 i; + nsIEditActionListener *listener; if (NS_SUCCEEDED(res)) { if (mActionListeners) @@ -4509,9 +4441,7 @@ nsEditor::DeleteSelectionAndCreateNode(const nsAString& aTag, result = GetSelection(getter_AddRefs(selection)); if (NS_FAILED(result)) return result; if (!selection) return NS_ERROR_NULL_POINTER; - result = selection->Collapse(parentSelectedNode, offsetOfNewNode+1); - - return result; + return selection->Collapse(parentSelectedNode, offsetOfNewNode+1); } @@ -4796,10 +4726,10 @@ NS_IMETHODIMP nsEditor::CreateTxnForDeleteElement(nsIDOMNode * aElement, // Get current selection and setup txn to delete it, // but only if selection exists (is not a collapsed "caret" state) - nsCOMPtr selection; if (!mPresShellWeak) return NS_ERROR_NOT_INITIALIZED; nsCOMPtr ps = do_QueryReferent(mPresShellWeak); if (!ps) return NS_ERROR_NOT_INITIALIZED; + nsCOMPtr selection; result = ps->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection)); if (NS_SUCCEEDED(result) && selection) { @@ -4880,11 +4810,11 @@ nsEditor::CreateTxnForDeleteSelection(nsIEditor::EDirection aAction, NS_ASSERTION(aAction != eNextWord && aAction != ePreviousWord && aAction != eToEndOfLine, "CreateTxnForDeleteSelection: unsupported action!"); #endif - nsresult result; - nsCOMPtr selection; nsCOMPtr selCon = do_QueryReferent(mSelConWeak); if (!selCon) return NS_ERROR_NOT_INITIALIZED; - result = selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, getter_AddRefs(selection)); + nsCOMPtr selection; + nsresult result = selCon->GetSelection(nsISelectionController::SELECTION_NORMAL, + getter_AddRefs(selection)); if ((NS_SUCCEEDED(result)) && selection) { // Check whether the selection is collapsed and we should do nothing: @@ -4899,8 +4829,8 @@ nsEditor::CreateTxnForDeleteSelection(nsIEditor::EDirection aAction, return result; } - nsCOMPtr enumerator; nsCOMPtrselPrivate(do_QueryInterface(selection)); + nsCOMPtr enumerator; result = selPrivate->GetEnumerator(getter_AddRefs(enumerator)); if (NS_SUCCEEDED(result) && enumerator) { @@ -4912,11 +4842,11 @@ nsEditor::CreateTxnForDeleteSelection(nsIEditor::EDirection aAction, { nsCOMPtr range( do_QueryInterface(currentItem) ); range->GetCollapsed(&isCollapsed); - if (PR_FALSE==isCollapsed) + if (!isCollapsed) { DeleteRangeTxn *txn; result = TransactionFactory::GetNewTransaction(DeleteRangeTxn::GetCID(), (EditTxn **)&txn); - if ((NS_SUCCEEDED(result)) && (nsnull!=txn)) + if (NS_SUCCEEDED(result) && txn) { txn->Init(this, range, &mRangeUpdater); (*aTxn)->AppendChild(txn); @@ -4950,22 +4880,19 @@ nsEditor::CreateTxnForDeleteInsertionPoint(nsIDOMRange *aRange, nsIEditor::EDirection aAction, EditAggregateTxn *aTxn) { - nsCOMPtr node; - PRBool isFirst; - PRBool isLast; - PRInt32 offset; - // get the node and offset of the insertion point + nsCOMPtr node; nsresult result = aRange->GetStartContainer(getter_AddRefs(node)); if (NS_FAILED(result)) return result; + + PRInt32 offset; result = aRange->GetStartOffset(&offset); if (NS_FAILED(result)) return result; // determine if the insertion point is at the beginning, middle, or end of the node - nsCOMPtr nodeAsText; - nodeAsText = do_QueryInterface(node); + nsCOMPtr nodeAsText = do_QueryInterface(node); PRUint32 count=0; @@ -4980,8 +4907,8 @@ nsEditor::CreateTxnForDeleteInsertionPoint(nsIDOMRange *aRange, childList->GetLength(&count); } - isFirst = (0==offset); - isLast = (count==(PRUint32)offset); + PRBool isFirst = (0 == offset); + PRBool isLast = (count == (PRUint32)offset); // XXX: if isFirst && isLast, then we'll need to delete the node // as well as the 1 child @@ -4995,8 +4922,7 @@ nsEditor::CreateTxnForDeleteInsertionPoint(nsIDOMRange *aRange, if ((NS_SUCCEEDED(result)) && priorNode) { // there is a priorNode, so delete it's last child (if text content, delete the last char.) // if it has no children, delete it - nsCOMPtr priorNodeAsText; - priorNodeAsText = do_QueryInterface(priorNode); + nsCOMPtr priorNodeAsText = do_QueryInterface(priorNode); if (priorNodeAsText) { PRUint32 length=0; @@ -5034,8 +4960,7 @@ nsEditor::CreateTxnForDeleteInsertionPoint(nsIDOMRange *aRange, if ((NS_SUCCEEDED(result)) && nextNode) { // there is a nextNode, so delete it's first child (if text content, delete the first char.) // if it has no children, delete it - nsCOMPtr nextNodeAsText; - nextNodeAsText = do_QueryInterface(nextNode); + nsCOMPtr nextNodeAsText = do_QueryInterface(nextNode); if (nextNodeAsText) { PRUint32 length=0; @@ -5094,8 +5019,8 @@ nsEditor::CreateTxnForDeleteInsertionPoint(nsIDOMRange *aRange, if (NS_FAILED(result)) { return result; } if (selectedNode) { - nsCOMPtr selectedNodeAsText; - selectedNodeAsText = do_QueryInterface(selectedNode); + nsCOMPtr selectedNodeAsText = + do_QueryInterface(selectedNode); if (selectedNodeAsText) { // we are deleting from a text node, so do a text deletion PRInt32 begin = 0; // default for forward delete @@ -5203,7 +5128,6 @@ nsEditor::CreateHTMLContent(const nsAString& aTag, nsIContent** aContent) return NS_ERROR_FAILURE; nsCOMPtr tempDoc; - nsCOMPtr doc; rv = GetDocument(getter_AddRefs(tempDoc)); if (NS_FAILED(rv)) @@ -5211,7 +5135,7 @@ nsEditor::CreateHTMLContent(const nsAString& aTag, nsIContent** aContent) if (!tempDoc) return NS_ERROR_FAILURE; - doc = do_QueryInterface(tempDoc); + nsCOMPtr doc = do_QueryInterface(tempDoc); nsCOMPtr nodeInfoManager; rv = doc->GetNodeInfoManager(getter_AddRefs(nodeInfoManager));