Checks AddItem() success, as hinted by Stippi 5 (!) weeks ago.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39268 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin
2010-11-02 11:17:39 +00:00
parent b1534fc0e8
commit aede543994
@@ -246,8 +246,10 @@ TeamsListView::MessageReceived(BMessage* message)
TeamListItem* item = new(std::nothrow) TeamListItem(team);
if (item != NULL) {
AddItem(item);
SortItems(&TeamListItem::Compare);
if (!AddItem(item))
delete item;
else
SortItems(&TeamListItem::Compare);
}
break;
}
@@ -295,7 +297,11 @@ TeamsListView::_InitList()
team_info tmi;
while (get_next_team_info(&tmi_cookie, &tmi) == B_OK) {
TeamListItem* item = new TeamListItem(tmi);
TeamListItem* item = new(std::nothrow) TeamListItem(tmi);
if (!item) {
// Memory issue. Bail out.
break;
}
if (tmi.team == B_SYSTEM_TEAM ||
tmi.team == fThisTeam) {
@@ -303,7 +309,9 @@ TeamsListView::_InitList()
item->SetEnabled(false);
}
AddItem(item);
if (!AddItem(item))
delete item;
}
// SortItems(&TeamListItem::Compare);
@@ -332,10 +340,17 @@ TeamsListView::_UpdateList()
// Team not found in previously known teams list: insert a new item
TeamListItem* newItem = new(std::nothrow) TeamListItem(tmi);
if (newItem != NULL) {
bool added;
if (!item) // No item found with bigger team id: append at end
AddItem(newItem);
added = AddItem(newItem);
else
AddItem(newItem, index);
added = AddItem(newItem, index);
if (!added) {
// AddItem() failed! Memory Issue?
delete newItem;
}
}
}
index++; // Move list sync head.