From aa8033905a9ad2a9e9de95554ffd421883f0a8da Mon Sep 17 00:00:00 2001 From: John Scipione Date: Wed, 26 Mar 2014 17:34:48 -0400 Subject: [PATCH] Time: Fix memory leak. BListView::RemoveItem() doesn't delete the item, it just removes it from the list. We have to delete the item to free the memory it consumes ourselves. --- src/preferences/time/NetworkTimeView.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/preferences/time/NetworkTimeView.cpp b/src/preferences/time/NetworkTimeView.cpp index aca2a55b11..a1e8b02aeb 100644 --- a/src/preferences/time/NetworkTimeView.cpp +++ b/src/preferences/time/NetworkTimeView.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -494,12 +495,14 @@ NetworkTimeView::_InitView() void NetworkTimeView::_UpdateServerList() { - while (fServerListView->RemoveItem((int32)0) != NULL) - ; + BListItem* item; + while ((item = fServerListView->RemoveItem((int32)0)) != NULL) + delete item; + + fServerListView->MakeEmpty(); const char* server; int32 index = 0; - while ((server = fSettings.GetServer(index++)) != NULL) fServerListView->AddItem(new BStringItem(server));