MCPcopy Create free account
hub / github.com/GJDuck/e9patch / rotateRight

Function rotateRight

src/e9patch/e9alloc.cpp:147–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

145}
146
147static void rotateRight(Tree *t, Node *n)
148{
149 Node *tmp = RB_LEFT(n);
150 if ((RB_LEFT(n) = RB_RIGHT(tmp)) != nullptr)
151 RB_PARENT(RB_RIGHT(tmp)) = n;
152 fix(n);
153 if ((RB_PARENT(tmp) = RB_PARENT(n)) != nullptr)
154 {
155 if (n == RB_LEFT(RB_PARENT(n)))
156 RB_LEFT(RB_PARENT(n)) = tmp;
157 else
158 RB_RIGHT(RB_PARENT(n)) = tmp;
159 } else
160 t->root = tmp;
161 RB_RIGHT(tmp) = n;
162 RB_PARENT(n) = tmp;
163 fix(tmp);
164 if (RB_PARENT(tmp) != nullptr)
165 fix(RB_PARENT(tmp));
166}
167
168static void rebalanceInsert(Tree *t, Node *n)
169{

Callers 2

rebalanceInsertFunction · 0.85
rebalanceRemoveFunction · 0.85

Calls 1

fixFunction · 0.70

Tested by

no test coverage detected