From 6afe50d42468a230942ef64b278092e655cd192f Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 27 Dec 2009 15:19:17 +0000 Subject: [PATCH] * Added assignment operators. * Some automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34783 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/util/SplayTree.h | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/headers/private/kernel/util/SplayTree.h b/headers/private/kernel/util/SplayTree.h index c390177e82..4b40f02fd5 100644 --- a/headers/private/kernel/util/SplayTree.h +++ b/headers/private/kernel/util/SplayTree.h @@ -1,5 +1,5 @@ /* - * Copyright 2008, Ingo Weinhold . + * Copyright 2008-2009, Ingo Weinhold . * Distributed under the terms of the MIT License. * * Original Java implementation: @@ -23,12 +23,12 @@ struct SplayTreeDefinition { typedef xxx KeyType; typedef yyy NodeType; - + static const KeyType& GetKey(const NodeType* node); static SplayTreeLink* GetLink(NodeType* node); - + static int Compare(const KeyType& key, const NodeType* node); - + // for IteratableSplayTree only static NodeType** GetListLink(NodeType* node); }; @@ -255,16 +255,22 @@ public: return closestNode; } + SplayTree& operator=(const SplayTree& other) + { + fRoot = other.fRoot; + return *this; + } + private: /*! Internal method to perform a top-down splay. - + _Splay(key) does the splay operation on the given key. If key is in the tree, then the node containing that key becomes the root. If key is not in the tree, then after the splay, key.root is either the greatest key < key in the tree, or the least key > key in the tree. - + This means, among other things, that if you splay with a key that's larger than any in the tree, the rightmost node of the tree becomes the root. This property is used @@ -587,6 +593,13 @@ public: return ConstIterator(this, FindClosest(key, greater, orEqual)); } + IteratableSplayTree& operator=(const IteratableSplayTree& other) + { + fTree = other.fTree; + fFirst = other.fFirst; + return *this; + } + protected: friend class Iterator; friend class ConstIterator;