[PATCH xorg-gtest 1/6] device: move "device not found error down"

Peter Hutterer peter.hutterer at who-t.net
Tue Aug 28 23:14:29 PDT 2012


Even if scandir results in success, we may still fail and return an empty
device path. Move the error message down, the code in between the old
position of this hunk and the new position is not hit if scandir fails
anyway.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 src/device.cpp | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/device.cpp b/src/device.cpp
index 884ba3b..12b3e56 100644
--- a/src/device.cpp
+++ b/src/device.cpp
@@ -63,17 +63,12 @@ static int _event_device_filter(const struct dirent *d) {
 }
 
 void xorg::testing::evemu::Device::GuessDeviceNode(time_t ctime) {
-  struct dirent **event_devices;
+  struct dirent **event_devices = NULL;
   int n_event_devices;
 
   n_event_devices = scandir(SYS_INPUT_DIR, &event_devices,
                             _event_device_filter, _event_device_compare);
 
-  if (n_event_devices < 0) {
-    std::cerr << "Failed to guess device node." << std::endl;
-    return;
-  }
-
   bool found = false;
   for (int i = 0; i < n_event_devices && !found; i++) {
     std::stringstream s;
@@ -95,6 +90,9 @@ void xorg::testing::evemu::Device::GuessDeviceNode(time_t ctime) {
     close(fd);
   }
 
+  if (!found)
+    std::cerr << "Failed to guess device node." << std::endl;
+
   for (int i = 0; i < n_event_devices; i++)
     free(event_devices[i]);
   free(event_devices);
-- 
1.7.11.2



More information about the xorg-devel mailing list