Lines Matching refs:Path
19 void Path::replaceRoot(void *Root, unsigned Size, IdxPair Offsets) {
20 assert(!path.empty() && "Can't replace missing root");
21 path.front() = Entry(Root, Size, Offsets.first);
22 path.insert(path.begin() + 1, Entry(subtree(0), Offsets.second));
25 NodeRef Path::getLeftSibling(unsigned Level) const {
32 while (l && path[l].offset == 0)
36 if (path[l].offset == 0)
40 NodeRef NR = path[l].subtree(path[l].offset - 1);
48 void Path::moveLeft(unsigned Level) {
55 while (path[l].offset == 0) {
60 // end() may have created a height=0 path.
61 path.resize(Level + 1, Entry(nullptr, 0, 0));
64 --path[l].offset;
69 path[l] = Entry(NR, NR.size() - 1);
72 path[l] = Entry(NR, NR.size() - 1);
75 NodeRef Path::getRightSibling(unsigned Level) const {
90 NodeRef NR = path[l].subtree(path[l].offset + 1);
98 void Path::moveRight(unsigned Level) {
108 if (++path[l].offset == path[l].size)
113 path[l] = Entry(NR, 0);
116 path[l] = Entry(NR, 0);