From 6fd227430680ddab9eecbc0747c34338e04ce3b7 Mon Sep 17 00:00:00 2001 From: X512 Date: Thu, 27 Aug 2020 12:32:39 +0200 Subject: [PATCH] app_server pointer/ownership cleanup: trivial changes Split apart the work done in https://review.haiku-os.org/c/haiku/+/2695 in smaller, easier to review parts. This commit contains self-contained/local changes that are unlikely to cause problems. Change-Id: Idae27ca440791423e3d090bcfe33f4cc83bbea3d Reviewed-on: https://review.haiku-os.org/c/haiku/+/3174 Reviewed-by: Adrien Destugues --- src/servers/app/AppServer.cpp | 10 +++++----- src/servers/app/CursorSet.cpp | 5 ++--- src/servers/app/EventStream.cpp | 10 +++++----- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/servers/app/AppServer.cpp b/src/servers/app/AppServer.cpp index a0601ce981..c9041701f2 100644 --- a/src/servers/app/AppServer.cpp +++ b/src/servers/app/AppServer.cpp @@ -14,6 +14,7 @@ #include +#include #include #include @@ -174,20 +175,19 @@ Desktop* AppServer::_CreateDesktop(uid_t userID, const char* targetScreen) { BAutolock locker(fDesktopLock); - Desktop* desktop = NULL; + ObjectDeleter desktop; try { - desktop = new Desktop(userID, targetScreen); + desktop.SetTo(new Desktop(userID, targetScreen)); status_t status = desktop->Init(); if (status == B_OK) status = desktop->Run(); - if (status == B_OK && !fDesktops.AddItem(desktop)) + if (status == B_OK && !fDesktops.AddItem(desktop.Get())) status = B_NO_MEMORY; if (status != B_OK) { syslog(LOG_ERR, "Cannot initialize Desktop object: %s\n", strerror(status)); - delete desktop; return NULL; } } catch (...) { @@ -195,7 +195,7 @@ AppServer::_CreateDesktop(uid_t userID, const char* targetScreen) return NULL; } - return desktop; + return desktop.Detach(); } diff --git a/src/servers/app/CursorSet.cpp b/src/servers/app/CursorSet.cpp index 67c71491fc..faa3aa42b3 100644 --- a/src/servers/app/CursorSet.cpp +++ b/src/servers/app/CursorSet.cpp @@ -132,12 +132,11 @@ CursorSet::AddCursor(BCursorID which, uint8 *data) if (data == NULL) return B_BAD_VALUE; - BBitmap *bitmap = _CursorDataToBitmap(data); + ObjectDeleter bitmap(_CursorDataToBitmap(data)); BPoint hotspot(data[2], data[3]); - status_t result = AddCursor(which, bitmap, hotspot); + status_t result = AddCursor(which, bitmap.Get(), hotspot); - delete bitmap; return result; } diff --git a/src/servers/app/EventStream.cpp b/src/servers/app/EventStream.cpp index bb0f0de3e5..3d96cd854d 100644 --- a/src/servers/app/EventStream.cpp +++ b/src/servers/app/EventStream.cpp @@ -14,6 +14,7 @@ #include #include +#include #include #include @@ -262,12 +263,12 @@ InputServerStream::_MessageFromPort(BMessage** _message, bigtime_t timeout) // we have the message, now let's unflatten it - BMessage* message = new BMessage(code); - if (message == NULL) + ObjectDeleter message(new BMessage(code)); + if (message.Get() == NULL) return B_NO_MEMORY; if (buffer == NULL) { - *_message = message; + *_message = message.Detach(); return B_OK; } @@ -278,11 +279,10 @@ InputServerStream::_MessageFromPort(BMessage** _message, bigtime_t timeout) printf("Unflatten event failed: %s, port message code was: %" B_PRId32 " - %c%c%c%c\n", strerror(status), code, (int8)(code >> 24), (int8)(code >> 16), (int8)(code >> 8), (int8)code); - delete message; return status; } - *_message = message; + *_message = message.Detach(); return B_OK; }