From 583b05be463e43426e7fba968bd21b4c6d494da8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 25 Apr 2006 20:18:01 +0000 Subject: [PATCH] Errors in Desktop::Init() and Desktop::Run() are now taken into account correctly. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17233 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/AppServer.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/servers/app/AppServer.cpp b/src/servers/app/AppServer.cpp index 271d82aefc..484077f80c 100644 --- a/src/servers/app/AppServer.cpp +++ b/src/servers/app/AppServer.cpp @@ -189,10 +189,16 @@ AppServer::_CreateDesktop(uid_t userID) try { desktop = new Desktop(userID); - desktop->Init(); - desktop->Run(); + status_t status = desktop->Init(); + if (status == B_OK) { + if (!desktop->Run()) + status = B_ERROR; + } + if (status == B_OK && !fDesktops.AddItem(desktop)) + status = B_NO_MEMORY; - if (!fDesktops.AddItem(desktop)) { + if (status < B_OK) { + fprintf(stderr, "Cannot initialize Desktop object: %s\n", strerror(status)); delete desktop; return NULL; }