mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-10 09:19:28 +00:00
better error handling
This commit is contained in:
parent
d9dcd880e5
commit
cc913f3c67
@ -562,13 +562,13 @@ nsresult nsContentIterator::Last()
|
||||
nsresult nsContentIterator::Next()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mLast)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NextNode(&mCurNode);
|
||||
@ -578,13 +578,13 @@ nsresult nsContentIterator::Next()
|
||||
nsresult nsContentIterator::Prev()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mFirst)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return PrevNode(&mCurNode);
|
||||
@ -878,18 +878,18 @@ nsresult nsContentSubtreeIterator::Init(nsIDOMRange* aRange)
|
||||
nsresult nsContentSubtreeIterator::Next()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mLast)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> nextNode;
|
||||
if (NS_FAILED(GetNextSibling(mCurNode, &nextNode)))
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
nextNode = GetDeepFirstChild(nextNode);
|
||||
return GetTopAncestorInRange(nextNode, &mCurNode);
|
||||
}
|
||||
@ -898,19 +898,19 @@ nsresult nsContentSubtreeIterator::Next()
|
||||
nsresult nsContentSubtreeIterator::Prev()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mFirst)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> prevNode;
|
||||
prevNode = GetDeepFirstChild(mCurNode);
|
||||
if (NS_FAILED(PrevNode(&prevNode)))
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
prevNode = GetDeepLastChild(prevNode);
|
||||
return GetTopAncestorInRange(prevNode, &mCurNode);
|
||||
}
|
||||
|
@ -1131,7 +1131,9 @@ nsresult nsRange::DeleteContents()
|
||||
|
||||
nsCOMPtr<nsIContentIterator> iter;
|
||||
res = NS_NewContentIterator(getter_AddRefs(iter));
|
||||
iter->Init(this);
|
||||
if (NS_FAILED(res)) return res;
|
||||
res = iter->Init(this);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
|
||||
// XXX Note that this chunk is also thread unsafe, since we
|
||||
@ -1154,7 +1156,12 @@ nsresult nsRange::DeleteContents()
|
||||
{
|
||||
deleteList.AppendElement(NS_STATIC_CAST(void*,cN));
|
||||
}
|
||||
iter->Next();
|
||||
res = iter->Next();
|
||||
if (NS_FAILED(res)) // a little noise here to catch bugs
|
||||
{
|
||||
NS_NOTREACHED("nsRange::DeleteContents() : iterator failed to advance");
|
||||
return res;
|
||||
}
|
||||
res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
}
|
||||
|
||||
@ -1474,7 +1481,8 @@ nsresult nsRange::ToString(nsString& aReturn)
|
||||
|
||||
// loop through the content iterator, which returns nodes in the range in
|
||||
// close tag order, and grab the text from any text node
|
||||
iter->CurrentNode(getter_AddRefs(cN));
|
||||
nsresult res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
if (NS_FAILED(res)) return res;
|
||||
while (NS_COMFALSE == iter->IsDone())
|
||||
{
|
||||
nsCOMPtr<nsIDOMText> textNode( do_QueryInterface(cN) );
|
||||
@ -1498,8 +1506,14 @@ nsresult nsRange::ToString(nsString& aReturn)
|
||||
aReturn += tempString;
|
||||
}
|
||||
}
|
||||
iter->Next();
|
||||
iter->CurrentNode(getter_AddRefs(cN));
|
||||
res = iter->Next();
|
||||
if (NS_FAILED(res)) // a little noise here to catch bugs
|
||||
{
|
||||
NS_NOTREACHED("nsRange::ToString() : iterator failed to advance");
|
||||
return res;
|
||||
}
|
||||
res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
if (NS_FAILED(res)) return res;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -562,13 +562,13 @@ nsresult nsContentIterator::Last()
|
||||
nsresult nsContentIterator::Next()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mLast)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return NextNode(&mCurNode);
|
||||
@ -578,13 +578,13 @@ nsresult nsContentIterator::Next()
|
||||
nsresult nsContentIterator::Prev()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mFirst)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return PrevNode(&mCurNode);
|
||||
@ -878,18 +878,18 @@ nsresult nsContentSubtreeIterator::Init(nsIDOMRange* aRange)
|
||||
nsresult nsContentSubtreeIterator::Next()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mLast)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> nextNode;
|
||||
if (NS_FAILED(GetNextSibling(mCurNode, &nextNode)))
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
nextNode = GetDeepFirstChild(nextNode);
|
||||
return GetTopAncestorInRange(nextNode, &mCurNode);
|
||||
}
|
||||
@ -898,19 +898,19 @@ nsresult nsContentSubtreeIterator::Next()
|
||||
nsresult nsContentSubtreeIterator::Prev()
|
||||
{
|
||||
if (mIsDone)
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
if (!mCurNode)
|
||||
return NS_OK;
|
||||
if (mCurNode == mFirst)
|
||||
{
|
||||
mIsDone = PR_TRUE;
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> prevNode;
|
||||
prevNode = GetDeepFirstChild(mCurNode);
|
||||
if (NS_FAILED(PrevNode(&prevNode)))
|
||||
return NS_ERROR_FAILURE;
|
||||
return NS_OK;
|
||||
prevNode = GetDeepLastChild(prevNode);
|
||||
return GetTopAncestorInRange(prevNode, &mCurNode);
|
||||
}
|
||||
|
@ -1131,7 +1131,9 @@ nsresult nsRange::DeleteContents()
|
||||
|
||||
nsCOMPtr<nsIContentIterator> iter;
|
||||
res = NS_NewContentIterator(getter_AddRefs(iter));
|
||||
iter->Init(this);
|
||||
if (NS_FAILED(res)) return res;
|
||||
res = iter->Init(this);
|
||||
if (NS_FAILED(res)) return res;
|
||||
|
||||
|
||||
// XXX Note that this chunk is also thread unsafe, since we
|
||||
@ -1154,7 +1156,12 @@ nsresult nsRange::DeleteContents()
|
||||
{
|
||||
deleteList.AppendElement(NS_STATIC_CAST(void*,cN));
|
||||
}
|
||||
iter->Next();
|
||||
res = iter->Next();
|
||||
if (NS_FAILED(res)) // a little noise here to catch bugs
|
||||
{
|
||||
NS_NOTREACHED("nsRange::DeleteContents() : iterator failed to advance");
|
||||
return res;
|
||||
}
|
||||
res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
}
|
||||
|
||||
@ -1474,7 +1481,8 @@ nsresult nsRange::ToString(nsString& aReturn)
|
||||
|
||||
// loop through the content iterator, which returns nodes in the range in
|
||||
// close tag order, and grab the text from any text node
|
||||
iter->CurrentNode(getter_AddRefs(cN));
|
||||
nsresult res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
if (NS_FAILED(res)) return res;
|
||||
while (NS_COMFALSE == iter->IsDone())
|
||||
{
|
||||
nsCOMPtr<nsIDOMText> textNode( do_QueryInterface(cN) );
|
||||
@ -1498,8 +1506,14 @@ nsresult nsRange::ToString(nsString& aReturn)
|
||||
aReturn += tempString;
|
||||
}
|
||||
}
|
||||
iter->Next();
|
||||
iter->CurrentNode(getter_AddRefs(cN));
|
||||
res = iter->Next();
|
||||
if (NS_FAILED(res)) // a little noise here to catch bugs
|
||||
{
|
||||
NS_NOTREACHED("nsRange::ToString() : iterator failed to advance");
|
||||
return res;
|
||||
}
|
||||
res = iter->CurrentNode(getter_AddRefs(cN));
|
||||
if (NS_FAILED(res)) return res;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user