You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by jo...@apache.org on 2005/09/09 10:42:24 UTC
svn commit: r279732 - /apr/apr/branches/1.2.x/file_io/unix/dir.c
Author: jorton
Date: Fri Sep 9 01:42:21 2005
New Revision: 279732
URL: http://svn.apache.org/viewcvs?rev=279732&view=rev
Log:
Merge r265684 from trunk:
* file_io/unix/dir.c (apr_dir_open): Fix error handling; don't assume
that apr_pcalloc can't change errno. Remove a redundant cast to
void *.
Modified:
apr/apr/branches/1.2.x/file_io/unix/dir.c
Modified: apr/apr/branches/1.2.x/file_io/unix/dir.c
URL: http://svn.apache.org/viewcvs/apr/apr/branches/1.2.x/file_io/unix/dir.c?rev=279732&r1=279731&r2=279732&view=diff
==============================================================================
--- apr/apr/branches/1.2.x/file_io/unix/dir.c (original)
+++ apr/apr/branches/1.2.x/file_io/unix/dir.c Fri Sep 9 01:42:21 2005
@@ -79,22 +79,22 @@
apr_size_t dirent_size =
(sizeof((*new)->entry->d_name) > 1 ?
sizeof(struct dirent) : sizeof (struct dirent) + 255);
+ DIR *dir = opendir(dirname);
+
+ if (!dir) {
+ return errno;
+ }
(*new) = (apr_dir_t *)apr_palloc(pool, sizeof(apr_dir_t));
(*new)->pool = pool;
(*new)->dirname = apr_pstrdup(pool, dirname);
- (*new)->dirstruct = opendir(dirname);
+ (*new)->dirstruct = dir;
(*new)->entry = apr_pcalloc(pool, dirent_size);
- if ((*new)->dirstruct == NULL) {
- return errno;
- }
- else {
- apr_pool_cleanup_register((*new)->pool, (void *)(*new), dir_cleanup,
- apr_pool_cleanup_null);
- return APR_SUCCESS;
- }
+ apr_pool_cleanup_register((*new)->pool, *new, dir_cleanup,
+ apr_pool_cleanup_null);
+ return APR_SUCCESS;
}
apr_status_t apr_dir_close(apr_dir_t *thedir)