hotspot/src/os/aix/vm/os_aix.inline.hpp
changeset 35180 298594487e08
parent 34647 fafb32d71489
child 35594 cc13089c6327
child 35479 62c12ca7a45e
--- a/hotspot/src/os/aix/vm/os_aix.inline.hpp	Wed Dec 16 19:30:10 2015 -0800
+++ b/hotspot/src/os/aix/vm/os_aix.inline.hpp	Thu Dec 17 08:23:51 2015 +0100
@@ -102,19 +102,15 @@
 }
 
 inline struct dirent* os::readdir(DIR* dirp, dirent *dbuf) {
-  dirent* p;
-  int status;
+  dirent* p = NULL;
   assert(dirp != NULL, "just checking");
 
-  // NOTE: Linux readdir_r (on RH 6.2 and 7.2 at least) is NOT like the POSIX
-  // version. Here is the doc for this function:
-  // http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_262.html
-
-  if((status = ::readdir_r(dirp, dbuf, &p)) != 0) {
-    errno = status;
+  // AIX: slightly different from POSIX.
+  // On AIX, readdir_r returns 0 or != 0 and error details in errno.
+  if (::readdir_r(dirp, dbuf, &p) != 0) {
     return NULL;
-  } else
-    return p;
+  }
+  return p;
 }
 
 inline int os::closedir(DIR *dirp) {