[REF] component: slightly simplify fiber code

This commit is contained in:
Géry Debongnie
2022-02-18 16:04:07 +01:00
committed by aab-odoo
parent 8ec7a6f9bf
commit 0dbd2bd463
+4 -6
View File
@@ -6,8 +6,7 @@ import { STATUS } from "./status";
export function makeChildFiber(node: ComponentNode, parent: Fiber): Fiber { export function makeChildFiber(node: ComponentNode, parent: Fiber): Fiber {
let current = node.fiber; let current = node.fiber;
if (current) { if (current) {
let root = parent.root; cancelFibers(current.children);
cancelFibers(root, current.children);
current.root = null; current.root = null;
} }
return new Fiber(node, parent); return new Fiber(node, parent);
@@ -17,7 +16,7 @@ export function makeRootFiber(node: ComponentNode): Fiber {
let current = node.fiber; let current = node.fiber;
if (current) { if (current) {
let root = current.root!; let root = current.root!;
root.counter -= cancelFibers(root, current.children); root.counter -= cancelFibers(current.children);
current.children = []; current.children = [];
root.counter++; root.counter++;
current.bdom = null; current.bdom = null;
@@ -42,15 +41,14 @@ export function makeRootFiber(node: ComponentNode): Fiber {
/** /**
* @returns number of not-yet rendered fibers cancelled * @returns number of not-yet rendered fibers cancelled
*/ */
function cancelFibers(root: any, fibers: Fiber[]): number { function cancelFibers(fibers: Fiber[]): number {
let result = 0; let result = 0;
for (let fiber of fibers) { for (let fiber of fibers) {
fiber.node.fiber = null; fiber.node.fiber = null;
fiber.root = root;
if (!fiber.bdom) { if (!fiber.bdom) {
result++; result++;
} }
result += cancelFibers(root, fiber.children); result += cancelFibers(fiber.children);
} }
return result; return result;
} }