From 8f3f641ccb65667df28ba59b6bdfdca9b29c325b Mon Sep 17 00:00:00 2001 From: "jfrancis%netscape.com" Date: Fri, 22 Jan 1999 08:59:26 +0000 Subject: [PATCH] efficiency improvement to ComparePointToRange() git-svn-id: svn://10.0.0.236/trunk@18276 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/src/nsRange.cpp | 14 +++++++++++++- mozilla/layout/base/src/nsRange.cpp | 14 +++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) 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;