MCPcopy Create free account
hub / github.com/Snapchat/Valdi / destroyViewNodeTree

Method destroyViewNodeTree

valdi/src/valdi/runtime/Runtime.cpp:358–385  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

356 for (auto* child : *viewNode) {
357 appendAllViews(child, views);
358 }
359}
360
361void 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}

Callers 5

TEST_PFunction · 0.80
CreateRenderAndDestroyFunction · 0.80
DestroyFunction · 0.80
RenderFunction · 0.80
destroyMethod · 0.80

Calls 7

DispatchFunctionClass · 0.85
removeViewNodeTreeMethod · 0.80
removeViewNodeMethod · 0.80
getRawIdMethod · 0.80
clearMethod · 0.65
getRootViewNodeMethod · 0.45

Tested by 4

TEST_PFunction · 0.64
CreateRenderAndDestroyFunction · 0.64
DestroyFunction · 0.64
RenderFunction · 0.64