Change written by Steve Peters, reviewed by me.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Mar 2005 21:40:27 +0000 (21:40 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Mar 2005 21:40:27 +0000 (21:40 +0000)
        - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster

        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
        Do early outs in a couple of the loops to make things faster.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@8846 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom2_rangeimpl.cpp

index 05d6898137c430c8f17635ad2081b183a94016bd..338339464ac6d46dcf156ae1b27590d68325ba56 100644 (file)
@@ -1,3 +1,12 @@
+2005-03-10  Darin Adler  <darin@apple.com>
+
+        Change written by Steve Peters, reviewed by me.
+
+        - fixed <rdar://problem/4045924> improve compareBoundaryPoints to make style changes faster
+
+        * khtml/xml/dom2_rangeimpl.cpp: (DOM::RangeImpl::compareBoundaryPoints):
+        Do early outs in a couple of the loops to make things faster.
+
 2005-03-10  Jens Alfke  <jens@apple.com>
 
         Reviewed by rjw.
 2005-03-10  Jens Alfke  <jens@apple.com>
 
         Reviewed by rjw.
index a550f4587a1d647f77d7367c1c757c17e4d17904..1f69498b6800d18b3045e3256ed0795f68be5b93 100644 (file)
@@ -333,7 +333,7 @@ short RangeImpl::compareBoundaryPoints( NodeImpl *containerA, long offsetA, Node
     if (c) {
         int offsetC = 0;
         NodeImpl *n = containerA->firstChild();
     if (c) {
         int offsetC = 0;
         NodeImpl *n = containerA->firstChild();
-        while (n != c) {
+        while (n != c && offsetC < offsetA) {
             offsetC++;
             n = n->nextSibling();
         }
             offsetC++;
             n = n->nextSibling();
         }
@@ -349,7 +349,7 @@ short RangeImpl::compareBoundaryPoints( NodeImpl *containerA, long offsetA, Node
     if (c) {
         int offsetC = 0;
         NodeImpl *n = containerB->firstChild();
     if (c) {
         int offsetC = 0;
         NodeImpl *n = containerB->firstChild();
-        while (n != c) {
+        while (n != c && offsetC < offsetB) {
             offsetC++;
             n = n->nextSibling();
         }
             offsetC++;
             n = n->nextSibling();
         }