Reviewed by Darin Adler.
authorharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jan 2005 01:19:52 +0000 (01:19 +0000)
committerharrison <harrison@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jan 2005 01:19:52 +0000 (01:19 +0000)
        * khtml/xml/dom_nodeimpl.cpp:
        (NodeImpl::displayNode):
        Add quotes around text node content.
        (NodeBaseImpl::childNode):
        Add nil check to return nil rather than crash when child node not found.
        * kwq/KWQAccObject.mm:
        (-[KWQAccObject doAXStringForTextMarkerRange:]):
        Pass range compliant positions to TextIterator.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom_nodeimpl.cpp
WebCore/kwq/KWQAccObject.mm

index 8271490ae1c9c2fa89a90961e42e72ab2ae33948..6b40a3e2b6a0777fd813419361c8e1938a4e78d1 100644 (file)
@@ -1,3 +1,16 @@
+2005-01-12  David Harrison  <harrison@apple.com>
+
+        Reviewed by Darin Adler.
+
+        * khtml/xml/dom_nodeimpl.cpp:
+        (NodeImpl::displayNode):
+        Add quotes around text node content.
+        (NodeBaseImpl::childNode):
+        Add nil check to return nil rather than crash when child node not found.
+        * kwq/KWQAccObject.mm:
+        (-[KWQAccObject doAXStringForTextMarkerRange:]):
+        Pass range compliant positions to TextIterator.
+
 2005-01-12  David Hyatt  <hyatt@apple.com>
 
        Fix for 3951203, CSS border style incorrectly clipped on inline elements.  Make sure the repaint rect set during
index 270836bbedfebee852d4a6b709163e7adaa532e8..583320a9e2105d7a012c5af5fe715cf956e696c0 100644 (file)
@@ -1381,7 +1381,7 @@ void NodeImpl::displayNode(const char *prefix)
     if (!prefix)
         prefix = "";
     if (isTextNode())
-        fprintf(stderr, "%s%s\t%p %s\n", prefix, nodeName().string().latin1(), this, nodeValue().string().latin1());
+        fprintf(stderr, "%s%s\t%p \"%s\"\n", prefix, nodeName().string().latin1(), this, nodeValue().string().latin1());
     else
         fprintf(stderr, "%s%s\t%p\n", prefix, nodeName().string().latin1(), this);
 }
@@ -2095,7 +2095,7 @@ NodeImpl *NodeBaseImpl::childNode(unsigned long index)
 {
     unsigned long i;
     NodeImpl *n = firstChild();
-    for (i = 0; i < index; i++)
+    for (i = 0; n != 0 && i < index; i++)
         n = n->nextSibling();
     return n;
 }
index 242bf920ba24851ad90e408a59f2224da92e0948..7651238d19077a08709ed4b01c3c1e8d2a90a0ca 100644 (file)
@@ -1007,26 +1007,17 @@ static QRect boundingBoxRect(RenderObject* obj)
 
 - (id)doAXStringForTextMarkerRange: (AXTextMarkerRangeRef) textMarkerRange
 {
-    VisiblePosition startVisiblePosition, endVisiblePosition;
-    Position startDeepPos, endDeepPos;
-    QString qString;
-    
     // extract the start and end VisiblePosition
-    startVisiblePosition = [self visiblePositionForStartOfTextMarkerRange: textMarkerRange];
+    VisiblePosition startVisiblePosition = [self visiblePositionForStartOfTextMarkerRange: textMarkerRange];
     if (startVisiblePosition.isNull())
         return nil;
     
-    endVisiblePosition = [self visiblePositionForEndOfTextMarkerRange: textMarkerRange];
+    VisiblePosition endVisiblePosition = [self visiblePositionForEndOfTextMarkerRange: textMarkerRange];
     if (endVisiblePosition.isNull())
         return nil;
     
-    // use deepEquivalent because it is what the user sees
-    startDeepPos = startVisiblePosition.deepEquivalent();
-    endDeepPos = endVisiblePosition.deepEquivalent();
-    
     // get the visible text in the range
-    qString = plainText(Range(startDeepPos.node(), startDeepPos.offset(), endDeepPos.node(), endDeepPos.offset()));
-    if (qString == nil) return nil;
+    QString qString = plainText(makeRange(startVisiblePosition, endVisiblePosition));
     
     // transform it to a CFString and return that
     return (id)qString.getCFString();