From e276d979018aa547978f0c4b0bcaddd5c5ab5e38 Mon Sep 17 00:00:00 2001 From: seriesl Date: Thu, 31 Aug 2017 12:12:29 +0200 Subject: [PATCH] Fix setTags and add refineMe bit --- Zcode/tree/node/definitions.hpp | 2 ++ Zcode/tree/node/node.hpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Zcode/tree/node/definitions.hpp b/Zcode/tree/node/definitions.hpp index b4dc59f..4aef28a 100644 --- a/Zcode/tree/node/definitions.hpp +++ b/Zcode/tree/node/definitions.hpp @@ -59,6 +59,8 @@ struct definitions // digit used to mark node as void. static const value_type voidbit = fifthfreebit; + // digit used to mark node as to be refined (refineme bit) + static const value_type refineMe = firstfreebit; //!mask for extracting all, but the void bit: static const value_type AllExceptVoidbit= allone - voidbit; diff --git a/Zcode/tree/node/node.hpp b/Zcode/tree/node/node.hpp index 5d57b2d..ec66082 100644 --- a/Zcode/tree/node/node.hpp +++ b/Zcode/tree/node/node.hpp @@ -158,9 +158,9 @@ struct Node: public definitions //! \param N pointer to the Node. //! \param V tag value //! \note we do not check V. - inline void setTags(Node &n) const + inline void setTags(const Node &tags) { - n.value = ((n.value)&partWithoutFreeBits) + (value&FreeBitsPart); + value = ((value)&partWithoutFreeBits) + ((tags.value)&FreeBitsPart); } //! return the hash code for nodes.