From 1d124d4db12e21247db7d83d82b62e14682bc75a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 26 Apr 2009 22:53:57 +0000 Subject: [PATCH] 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 --- .../gui/thread_window/WaitObjectsPage.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/apps/debuganalyzer/gui/thread_window/WaitObjectsPage.cpp b/src/apps/debuganalyzer/gui/thread_window/WaitObjectsPage.cpp index 4634bf3dd9..f772f57d03 100644 --- a/src/apps/debuganalyzer/gui/thread_window/WaitObjectsPage.cpp +++ b/src/apps/debuganalyzer/gui/thread_window/WaitObjectsPage.cpp @@ -147,8 +147,8 @@ private: friend struct GroupNode; struct RootNode : Node { - ThreadModel* threadModel; - BObjectList groupNodes; + ThreadModel* threadModel; + BObjectList groupNodes; RootNode(ThreadModel* model) : @@ -159,7 +159,7 @@ private: for (int32 i = 0; i < count; i++) { ThreadModel::WaitObjectGroup* group = threadModel->WaitObjectGroupAt(i); - if (!groupNodes.AddItem(new GroupNode(group))) + if (!groupNodes.AddItem(_CreateGroupNode(group))) throw std::bad_alloc(); } } @@ -178,6 +178,17 @@ private: { 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: