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:
@@ -246,8 +246,10 @@ TeamsListView::MessageReceived(BMessage* message)
|
|||||||
|
|
||||||
TeamListItem* item = new(std::nothrow) TeamListItem(team);
|
TeamListItem* item = new(std::nothrow) TeamListItem(team);
|
||||||
if (item != NULL) {
|
if (item != NULL) {
|
||||||
AddItem(item);
|
if (!AddItem(item))
|
||||||
SortItems(&TeamListItem::Compare);
|
delete item;
|
||||||
|
else
|
||||||
|
SortItems(&TeamListItem::Compare);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -295,7 +297,11 @@ TeamsListView::_InitList()
|
|||||||
team_info tmi;
|
team_info tmi;
|
||||||
|
|
||||||
while (get_next_team_info(&tmi_cookie, &tmi) == B_OK) {
|
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 ||
|
if (tmi.team == B_SYSTEM_TEAM ||
|
||||||
tmi.team == fThisTeam) {
|
tmi.team == fThisTeam) {
|
||||||
@@ -303,7 +309,9 @@ TeamsListView::_InitList()
|
|||||||
item->SetEnabled(false);
|
item->SetEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddItem(item);
|
if (!AddItem(item))
|
||||||
|
delete item;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SortItems(&TeamListItem::Compare);
|
// SortItems(&TeamListItem::Compare);
|
||||||
@@ -332,10 +340,17 @@ TeamsListView::_UpdateList()
|
|||||||
// Team not found in previously known teams list: insert a new item
|
// Team not found in previously known teams list: insert a new item
|
||||||
TeamListItem* newItem = new(std::nothrow) TeamListItem(tmi);
|
TeamListItem* newItem = new(std::nothrow) TeamListItem(tmi);
|
||||||
if (newItem != NULL) {
|
if (newItem != NULL) {
|
||||||
|
bool added;
|
||||||
|
|
||||||
if (!item) // No item found with bigger team id: append at end
|
if (!item) // No item found with bigger team id: append at end
|
||||||
AddItem(newItem);
|
added = AddItem(newItem);
|
||||||
else
|
else
|
||||||
AddItem(newItem, index);
|
added = AddItem(newItem, index);
|
||||||
|
|
||||||
|
if (!added) {
|
||||||
|
// AddItem() failed! Memory Issue?
|
||||||
|
delete newItem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
index++; // Move list sync head.
|
index++; // Move list sync head.
|
||||||
|
|||||||
Reference in New Issue
Block a user