Kaydet (Commit) eb7f057e authored tarafından Michael Meeks's avatar Michael Meeks

vcl lifecycle: delete children in dispose.

We can no longer rely on smart ptr members getting destroyed and
tearing down children before parents in the new order.

Change-Id: Ib22df93443d98f53543d3a8ac322e965623148d0
üst bf428ae4
...@@ -85,6 +85,9 @@ void Deck::dispose() ...@@ -85,6 +85,9 @@ void Deck::dispose()
// We have to explicitly trigger the destruction of panels. // We have to explicitly trigger the destruction of panels.
// Otherwise that is done by one of our base class destructors // Otherwise that is done by one of our base class destructors
// without updating maPanels. // without updating maPanels.
for (size_t i = 0; i < maPanels.size(); i++)
maPanels[i]->dispose();
maPanels.clear(); maPanels.clear();
vcl::Window::dispose(); vcl::Window::dispose();
} }
...@@ -110,6 +113,8 @@ void Deck::Dispose (void) ...@@ -110,6 +113,8 @@ void Deck::Dispose (void)
mpTitleBar.reset(); mpTitleBar.reset();
mpFiller.reset(); mpFiller.reset();
mpVerticalScrollBar.reset(); mpVerticalScrollBar.reset();
mpScrollContainer.reset();
mpScrollClipWindow.reset();
} }
DeckTitleBar* Deck::GetTitleBar (void) const DeckTitleBar* Deck::GetTitleBar (void) const
......
...@@ -69,6 +69,8 @@ TabBar::~TabBar() ...@@ -69,6 +69,8 @@ TabBar::~TabBar()
void TabBar::dispose() void TabBar::dispose()
{ {
maItems.clear();
mpMenuButton.reset();
vcl::Window::dispose(); vcl::Window::dispose();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment