From d246d9be8858c760576574109315332d6fd11f8a Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Mon, 10 Dec 2007 21:20:25 +0000 Subject: [PATCH] Some old changes I forgot to commit... BInputServerDevice::InitCheck() now checks if the fOwner allocation went fine (and returns B_NO_MEMORY in case it didn't). Since it can fail, inherited classes should call it as well (I modified MouseInputDevice's and KeyboardInputDevice's versions for now) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23106 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../devices/keyboard/KeyboardInputDevice.cpp | 4 ++++ .../input_server/devices/mouse/MouseInputDevice.cpp | 10 ++++++---- src/servers/input/InputServerDevice.cpp | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp b/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp index c1a01f8db1..631deb789f 100644 --- a/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp +++ b/src/add-ons/input_server/devices/keyboard/KeyboardInputDevice.cpp @@ -445,6 +445,10 @@ status_t KeyboardInputDevice::InitCheck() { CALLED(); + status_t status = BInputServerDevice::InitCheck(); + if (status < B_OK) + return status; + // TODO: this doesn't belong here! _RecursiveScan(kKeyboardDevicesDirectory); diff --git a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp index 9bc6452c22..b9a6573eb8 100644 --- a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp +++ b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp @@ -1,9 +1,11 @@ /* - * Copyright 2004-2006, Haiku. + * Copyright 2004-2007, Haiku. * Distributed under the terms of the MIT License. * * Authors: - * Stefano Ceccherini + * Stefano Ceccherini (stefano.ceccherini@gmail.com) + * Jérôme Duval + * Axel Dörfler, axeld@pinc-software.de */ @@ -97,7 +99,7 @@ LOG(const char *fmt, ...) extern "C" BInputServerDevice * instantiate_input_device() { - return new MouseInputDevice(); + return new (std::nothrow) MouseInputDevice(); } @@ -443,7 +445,7 @@ status_t MouseInputDevice::InitCheck() { CALLED(); - return B_OK; + return BInputServerDevice::InitCheck(); } diff --git a/src/servers/input/InputServerDevice.cpp b/src/servers/input/InputServerDevice.cpp index 1871ef668b..b6271fcf54 100644 --- a/src/servers/input/InputServerDevice.cpp +++ b/src/servers/input/InputServerDevice.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005, Haiku, Inc. All Rights Reserved. + * Copyright 2002-2007, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ @@ -8,10 +8,11 @@ #include +#include BInputServerDevice::BInputServerDevice() { - fOwner = new _BDeviceAddOn_(this); + fOwner = new (std::nothrow) _BDeviceAddOn_(this); } @@ -27,6 +28,8 @@ BInputServerDevice::~BInputServerDevice() status_t BInputServerDevice::InitCheck() { + if (fOwner == NULL) + return B_NO_MEMORY; return B_OK; }