summaryrefslogtreecommitdiff
path: root/ACE/ace/Dirent.inl
diff options
context:
space:
mode:
authorAdam Mitz <mitza@objectcomputing.com>2022-12-15 02:01:58 -0600
committerGitHub <noreply@github.com>2022-12-15 02:01:58 -0600
commit8022b6898339d0027578c0af19888dc8f2752b9c (patch)
tree486b5258beb8be4a036328cdbf978f82c174a93c /ACE/ace/Dirent.inl
parent67518043f1e02e67b02f057f9b183354bb070fd0 (diff)
parent8e6ccc97292c56438e09268ed344d53b5b409591 (diff)
downloadATCD-8022b6898339d0027578c0af19888dc8f2752b9c.tar.gz
Merge pull request #1999 from DOCGroup/elliottc/disable_readdir_r
[ace6tao2] Allow disabling of ACE_OS::readdir_r
Diffstat (limited to 'ACE/ace/Dirent.inl')
-rw-r--r--ACE/ace/Dirent.inl15
1 files changed, 12 insertions, 3 deletions
diff --git a/ACE/ace/Dirent.inl b/ACE/ace/Dirent.inl
index 3e420f1cc71..04f6f716e7a 100644
--- a/ACE/ace/Dirent.inl
+++ b/ACE/ace/Dirent.inl
@@ -56,9 +56,18 @@ ACE_INLINE int
ACE_Dirent::read (struct ACE_DIRENT *entry,
struct ACE_DIRENT **result)
{
- return this->dirp_
- ? ACE_OS::readdir_r (this->dirp_, entry, result)
- : 0;
+ int status = EBADF;
+ if (this->dirp_ && entry && result)
+ {
+ ACE_DIRENT* ptr = ACE_OS::readdir (this->dirp_);
+ if (ptr)
+ {
+ *entry = *ptr;
+ }
+ *result = ptr;
+ status = 0;
+ }
+ return status;
}
ACE_INLINE void