| 356 | for (auto* child : *viewNode) { |
| 357 | appendAllViews(child, views); |
| 358 | } |
| 359 | } |
| 360 | |
| 361 | void Runtime::destroyViewNodeTree(ViewNodeTree& viewNodeTree) { |
| 362 | _viewNodeManager.removeViewNodeTree(viewNodeTree); |
| 363 | |
| 364 | #if VALDI_DEBUG_TREE_UPDATES |
| 365 | viewNodeTree.scheduleExclusiveUpdate( |
| 366 | [&]() { |
| 367 | auto rootViewNode = viewNodeTree.getRootViewNode(); |
| 368 | if (rootViewNode != nullptr) { |
| 369 | viewNodeTree.removeViewNode(rootViewNode->getRawId()); |
| 370 | } |
| 371 | |
| 372 | viewNodeTree.clear(); |
| 373 | }, |
| 374 | DispatchFunction(), |
| 375 | "destroy"); |
| 376 | #else |
| 377 | viewNodeTree.scheduleExclusiveUpdate( |
| 378 | [&]() { |
| 379 | auto rootViewNode = viewNodeTree.getRootViewNode(); |
| 380 | if (rootViewNode != nullptr) { |
| 381 | viewNodeTree.removeViewNode(rootViewNode->getRawId()); |
| 382 | } |
| 383 | |
| 384 | viewNodeTree.clear(); |
| 385 | }, |
| 386 | DispatchFunction()); |
| 387 | #endif |
| 388 | } |