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.
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
#include <ControlLook.h>
|
#include <ControlLook.h>
|
||||||
#include <File.h>
|
#include <File.h>
|
||||||
#include <FindDirectory.h>
|
#include <FindDirectory.h>
|
||||||
|
#include <ListItem.h>
|
||||||
#include <ListView.h>
|
#include <ListView.h>
|
||||||
#include <Path.h>
|
#include <Path.h>
|
||||||
#include <ScrollView.h>
|
#include <ScrollView.h>
|
||||||
@@ -494,12 +495,14 @@ NetworkTimeView::_InitView()
|
|||||||
void
|
void
|
||||||
NetworkTimeView::_UpdateServerList()
|
NetworkTimeView::_UpdateServerList()
|
||||||
{
|
{
|
||||||
while (fServerListView->RemoveItem((int32)0) != NULL)
|
BListItem* item;
|
||||||
;
|
while ((item = fServerListView->RemoveItem((int32)0)) != NULL)
|
||||||
|
delete item;
|
||||||
|
|
||||||
|
fServerListView->MakeEmpty();
|
||||||
|
|
||||||
const char* server;
|
const char* server;
|
||||||
int32 index = 0;
|
int32 index = 0;
|
||||||
|
|
||||||
while ((server = fSettings.GetServer(index++)) != NULL)
|
while ((server = fSettings.GetServer(index++)) != NULL)
|
||||||
fServerListView->AddItem(new BStringItem(server));
|
fServerListView->AddItem(new BStringItem(server));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user