147
148
export function rightRotate(tree: PieceTreeBase, y: TreeNode) {
150
>
y.left = x.right;
151
>
if (x.right !== SENTINEL) {
152
x.right.parent = y;
153
}
155
>
156
>
// fix size_left
157
>
y.size_left -= x.size_left + (x.piece ? x.piece.length : 0);
158
>
y.lf_left -= x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);
159
>
160
>
if (y.parent === SENTINEL) {
161
tree.root = x;
163
y.parent.right = x;
164
} else {
165
y.parent.left = x;
166
}
168
>
x.right = y;
169
>
y.parent = x;
170
>
}
171
172
export function rbDelete(tree: PieceTreeBase, z: TreeNode) {