diff options
Diffstat (limited to 'src/helpers/SubsurfaceTree.cpp')
| -rw-r--r-- | src/helpers/SubsurfaceTree.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/helpers/SubsurfaceTree.cpp b/src/helpers/SubsurfaceTree.cpp index cdadbe75..312ac9df 100644 --- a/src/helpers/SubsurfaceTree.cpp +++ b/src/helpers/SubsurfaceTree.cpp @@ -56,6 +56,16 @@ SSurfaceTreeNode* SubsurfaceTree::createTreeRoot(wlr_surface* pSurface, applyGlo void destroySubsurface(SSubsurface* pSubsurface); void SubsurfaceTree::destroySurfaceTree(SSurfaceTreeNode* pNode) { + bool exists = false; + for (auto& n : surfaceTreeNodes) { + if (&n == pNode) { + exists = true; + break; + } + } + + RASSERT(exists, "Tried to delete a surfaceTreeNode that doesn't exist!"); + for (auto& c : pNode->childSubsurfaces) destroySubsurface(&c); @@ -160,4 +170,4 @@ void Events::listener_destroySubsurfaceNode(wl_listener* listener, void* data) { wl_list_remove(&pNode->listen_destroy.link); SubsurfaceTree::surfaceTreeNodes.remove(*pNode); -}
\ No newline at end of file +} |
