Accidentally broke CountItemsUnder() for invalid items with previous commit. This fixes
VLC, which for some reason calls CountItemsUnder(NULL) quite a few times on startup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26167 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
f41c3a5bcd
commit
fa366cbe40
@ -688,24 +688,24 @@ int32
|
|||||||
BOutlineListView::CountItemsUnder(BListItem* underItem,
|
BOutlineListView::CountItemsUnder(BListItem* underItem,
|
||||||
bool oneLevelOnly) const
|
bool oneLevelOnly) const
|
||||||
{
|
{
|
||||||
int32 i = FullListIndexOf(underItem) + 1;
|
int32 i = FullListIndexOf(underItem);
|
||||||
if (i == -1)
|
if (i == -1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
++i;
|
||||||
int32 count = 0;
|
int32 count = 0;
|
||||||
|
uint32 baseLevel = underItem->OutlineLevel();
|
||||||
|
|
||||||
while (i < FullListCountItems()) {
|
for (; i < FullListCountItems(); i++) {
|
||||||
BListItem *item = FullListItemAt(i);
|
BListItem *item = FullListItemAt(i);
|
||||||
|
|
||||||
// If we jump out of the subtree, return count
|
// If we jump out of the subtree, return count
|
||||||
if (item->fLevel <= underItem->OutlineLevel())
|
if (item->fLevel <= baseLevel)
|
||||||
return count;
|
return count;
|
||||||
|
|
||||||
// If the level matches, increase count
|
// If the level matches, increase count
|
||||||
if (!oneLevelOnly || item->fLevel == underItem->OutlineLevel() + 1)
|
if (!oneLevelOnly || item->fLevel == baseLevel + 1)
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user