If the wait object group only contains a single object, don't create a tree node
for the group, but just for the object. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30452 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -148,7 +148,7 @@ private:
|
|||||||
|
|
||||||
struct RootNode : Node {
|
struct RootNode : Node {
|
||||||
ThreadModel* threadModel;
|
ThreadModel* threadModel;
|
||||||
BObjectList<GroupNode> groupNodes;
|
BObjectList<Node> groupNodes;
|
||||||
|
|
||||||
RootNode(ThreadModel* model)
|
RootNode(ThreadModel* model)
|
||||||
:
|
:
|
||||||
@@ -159,7 +159,7 @@ private:
|
|||||||
for (int32 i = 0; i < count; i++) {
|
for (int32 i = 0; i < count; i++) {
|
||||||
ThreadModel::WaitObjectGroup* group
|
ThreadModel::WaitObjectGroup* group
|
||||||
= threadModel->WaitObjectGroupAt(i);
|
= threadModel->WaitObjectGroupAt(i);
|
||||||
if (!groupNodes.AddItem(new GroupNode(group)))
|
if (!groupNodes.AddItem(_CreateGroupNode(group)))
|
||||||
throw std::bad_alloc();
|
throw std::bad_alloc();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -178,6 +178,17 @@ private:
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
static Node* _CreateGroupNode(ThreadModel::WaitObjectGroup* group)
|
||||||
|
{
|
||||||
|
// If the group has only one object, just create an object node.
|
||||||
|
if (group->CountWaitObjects() == 1)
|
||||||
|
return new ObjectNode(group->WaitObjectAt(0));
|
||||||
|
|
||||||
|
return new GroupNode(group);
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user