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; }