Bug #: 3832
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 3 Jul 2005 09:58:32 +0000 (09:58 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 3 Jul 2005 09:58:32 +0000 (09:58 +0000)
Submitted by: eseidel
Reviewed by: mjs
        * kwq/KWQValueList.h:
        (QValueList::find): KDOM support
        (QValueList::constBegin): KDE compatibility
        (QValueList::constEnd): KDE compatibility
        * kwq/KWQValueListImpl.h:
        * kwq/KWQValueListImpl.mm:
        (KWQValueListImpl::findEqualNode): KDOM support
        http://bugzilla.opendarwin.org/show_bug.cgi?id=3832

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

WebCore/ChangeLog-2005-08-23
WebCore/kwq/KWQValueList.h
WebCore/kwq/KWQValueListImpl.h
WebCore/kwq/KWQValueListImpl.mm

index f737f8ac28f42b9337e646c7fd8d9577a3bbc6d1..4fc6b343d74b3d36afc9b2a60c776380b3d69ea7 100644 (file)
@@ -1,3 +1,16 @@
+2005-07-03  Eric Seidel  <eseidel@apple.com>
+
+        Reviewed by mjs.
+
+        * kwq/KWQValueList.h:
+        (QValueList::find): KDOM support
+        (QValueList::constBegin): KDE compatibility
+        (QValueList::constEnd): KDE compatibility
+        * kwq/KWQValueListImpl.h:
+        * kwq/KWQValueListImpl.mm:
+        (KWQValueListImpl::findEqualNode): KDOM support
+        http://bugzilla.opendarwin.org/show_bug.cgi?id=3832
+
 2005-07-03  Eric Seidel  <eseidel@apple.com>
 
         Reviewed by mjs.
index 7ee81c2616d777718c0812135520feed9c3ccdb1..6a5ca10ffc3621b6217679ed0667d1e045838200 100644 (file)
@@ -92,7 +92,9 @@ template<class T> bool operator==(const QValueList<T> &a, const QValueList<T> &b
 template <class T> class QValueList {
 public:
     typedef QValueListIterator<T> Iterator;
+    typedef QValueListIterator<T> iterator;
     typedef QValueListConstIterator<T> ConstIterator;
+    typedef QValueListConstIterator<T> const_iterator;
 
     QValueList() : impl(deleteNode, copyNode) { }
         
@@ -104,6 +106,7 @@ public:
     Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); } 
     void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
     uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
+    Iterator find(const T &val) const { QValueListNode<T> node(val); return impl.findEqualNode(&node, nodesEqual); }
 
     Iterator insert(Iterator iter, const T& val) { return impl.insert(iter.impl, new QValueListNode<T>(val)); }
     Iterator remove(Iterator iter) { return impl.removeIterator(iter.impl); }
@@ -119,6 +122,8 @@ public:
 
     ConstIterator begin() const { return impl.begin(); }
     ConstIterator end() const { return impl.end(); }
+    ConstIterator constBegin() const { return impl.begin(); }
+    ConstIterator constEnd() const { return impl.end(); }
     ConstIterator fromLast() const { return impl.fromLast(); }
 
     T& operator[] (uint index) { return ((QValueListNode<T> *)impl.nodeAt(index))->value; }
index f9096275bdee887e6bd6c69a3485e9689cb80cb3..6631b9393cc33705ea625e86d02e47aa595232e5 100644 (file)
@@ -72,6 +72,8 @@ public:
     KWQValueListIteratorImpl prependNode(KWQValueListNodeImpl *node);
     void removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *));
     uint containsEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
+    
+    KWQValueListIteratorImpl findEqualNode(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
 
     KWQValueListIteratorImpl insert(const KWQValueListIteratorImpl &iterator, KWQValueListNodeImpl* node);
     KWQValueListIteratorImpl removeIterator(KWQValueListIteratorImpl &iterator);
index 8c3604136f2650146eb8eabbecc13d9c510673ac..7385c35c6fdb77b5c108e2ca9d5c9838f681fb4d 100644 (file)
@@ -286,6 +286,19 @@ uint KWQValueListImpl::containsEqualNodes(KWQValueListNodeImpl *node, bool (*equ
     return contains;
 }
 
+KWQValueListIteratorImpl KWQValueListImpl::findEqualNode(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const
+{
+    KWQValueListIteratorImpl it = begin();
+    KWQValueListIteratorImpl endIt = end();
+    while (it != endIt) {
+        if (equalFunc(node, it.node())) {
+            break;
+        }
+        it++;
+    }
+    return it;
+}
+
 KWQValueListIteratorImpl KWQValueListImpl::insert(const KWQValueListIteratorImpl &iterator, KWQValueListNodeImpl *node)
 {
     copyOnWrite();