diff --git a/mozilla/content/base/src/nsRange.cpp b/mozilla/content/base/src/nsRange.cpp index 2c68218515f..e5a6a34b010 100644 --- a/mozilla/content/base/src/nsRange.cpp +++ b/mozilla/content/base/src/nsRange.cpp @@ -393,7 +393,7 @@ nsresult nsRange::ComparePointToRange(nsIDOMNode* aParent, PRInt32 aOffset, PRIn // no trivial cases please if (!aParent) return NS_ERROR_NULL_POINTER; - // our rnage is in a good state? + // our range is in a good state? if (!mIsPositioned) return NS_ERROR_NOT_INITIALIZED; // check common case first @@ -413,6 +413,18 @@ nsresult nsRange::ComparePointToRange(nsIDOMNode* aParent, PRInt32 aOffset, PRIn return NS_OK; } + // more common cases + if ((aParent == mStartParent) && (aOffset == mStartOffset)) + { + *aResult = 0; + return NS_OK; + } + if ((aParent == mEndParent) && (aOffset == mEndOffset)) + { + *aResult = 0; + return NS_OK; + } + // ok, do it the hard way if (IsIncreasing(aParent,aOffset,mStartParent,mStartOffset)) *aResult = -1; else if (IsIncreasing(mEndParent,mEndOffset,aParent,aOffset)) *aResult = 1; diff --git a/mozilla/layout/base/src/nsRange.cpp b/mozilla/layout/base/src/nsRange.cpp index 2c68218515f..e5a6a34b010 100644 --- a/mozilla/layout/base/src/nsRange.cpp +++ b/mozilla/layout/base/src/nsRange.cpp @@ -393,7 +393,7 @@ nsresult nsRange::ComparePointToRange(nsIDOMNode* aParent, PRInt32 aOffset, PRIn // no trivial cases please if (!aParent) return NS_ERROR_NULL_POINTER; - // our rnage is in a good state? + // our range is in a good state? if (!mIsPositioned) return NS_ERROR_NOT_INITIALIZED; // check common case first @@ -413,6 +413,18 @@ nsresult nsRange::ComparePointToRange(nsIDOMNode* aParent, PRInt32 aOffset, PRIn return NS_OK; } + // more common cases + if ((aParent == mStartParent) && (aOffset == mStartOffset)) + { + *aResult = 0; + return NS_OK; + } + if ((aParent == mEndParent) && (aOffset == mEndOffset)) + { + *aResult = 0; + return NS_OK; + } + // ok, do it the hard way if (IsIncreasing(aParent,aOffset,mStartParent,mStartOffset)) *aResult = -1; else if (IsIncreasing(mEndParent,mEndOffset,aParent,aOffset)) *aResult = 1;