File tree Expand file tree Collapse file tree
graphics/deko3d/deko_examples/source/SampleFramework Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -192,7 +192,7 @@ void CIntrusiveTreeBase::remove(N* node)
192192 }
193193 else
194194 {
195- child = node->left () ? node->right () : node->left ();
195+ child = node->left () ? node->left () : node->right ();
196196 parent = node->getParent ();
197197 color = node->getColor ();
198198
Original file line number Diff line number Diff line change @@ -173,7 +173,7 @@ class CIntrusiveTree final : protected CIntrusiveTreeBase
173173
174174 T* first () const { return toType (minmax (N::Left)); }
175175 T* last () const { return toType (minmax (N::Right)); }
176- bool empty () const { return m_root ! = nullptr ; }
176+ bool empty () const { return m_root = = nullptr ; }
177177 void clear () { m_root = nullptr ; }
178178
179179 T* prev (T* node) const { return toType (walk (toNode (node), N::Left)); }
@@ -194,31 +194,11 @@ class CIntrusiveTree final : protected CIntrusiveTreeBase
194194 mode != UpperBound ? N::Left : N::Right,
195195 [&lambda](N* curnode) { return lambda (toType (curnode)); });
196196
197- switch (mode)
198- {
199- default :
200- case Exact:
201- break ;
202- case LowerBound:
203- if (!node && parent)
204- {
205- if (&parent->left () == &point)
206- node = parent;
207- else
208- node = walk (parent, N::Right);
209- }
210- break ;
211- case UpperBound:
212- if (node)
213- node = walk (node, N::Right);
214- else if (parent)
215- {
216- if (&parent->right () == &point)
217- node = walk (parent, N::Right);
218- else
219- node = parent;
220- }
221- break ;
197+ if (mode != Exact) {
198+ if (mode == UpperBound && node)
199+ node = walk (node, N::Right);
200+ else if (!node && parent)
201+ node = &parent->left () == &point ? parent : walk (parent, N::Right);
222202 }
223203 return toType (node);
224204 }
You can’t perform that action at this time.
0 commit comments