AVL node/tree: make non-copyable

AVL trees can't be copied with the default copy constructor as the
parent pointer of the first item of both of the resulting trees would
point to the original tree. Copying an AVL node, however, generally
violates the integrity of the corresponding tree. The copy constructor
of Avl_tree is used in some places but in those places it can be
replaced easily. So, this commit deletes the copy constructor of
Avl_node_base which makes Avl_node and Avl_tree non-copyable.

Issue #2654
This commit is contained in:
Martin Stein
2018-01-24 14:02:35 +01:00
committed by Norman Feske
parent 4e9ff5ad7b
commit abf9557bb5
13 changed files with 84 additions and 55 deletions

View File

@ -26,7 +26,7 @@
* (platform-specific) capability space of the component. Therefore it
* shouldn't be copied around, but only referenced by e.g. Native_capability.
*/
class Genode::Native_capability::Data : public Avl_node<Data>, Noncopyable
class Genode::Native_capability::Data : public Avl_node<Data>
{
private: