Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-11-06 20:26:53 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-11-06 20:26:53 +0300
commitd52ddfa6ccc91a97562fc90fee3ef1f3eab774fd (patch)
tree2dd256d18bddafbae44febbfd0fa717f366dc569 /source/blender/blenlib
parent7ef03eae20c8613f52b4cfca3919b9a871860f3e (diff)
parent64cd9a079b987e1ef3daf926bd5af26185e297a5 (diff)
Merge branch 'blender-v2.81-release'
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/BLI_fileops.h1
-rw-r--r--source/blender/blenlib/intern/storage.c22
2 files changed, 19 insertions, 4 deletions
diff --git a/source/blender/blenlib/BLI_fileops.h b/source/blender/blenlib/BLI_fileops.h
index bdf7588291f..5c20e57181e 100644
--- a/source/blender/blenlib/BLI_fileops.h
+++ b/source/blender/blenlib/BLI_fileops.h
@@ -67,6 +67,7 @@ typedef struct _stat BLI_stat_t;
typedef struct stat BLI_stat_t;
#endif
+int BLI_fstat(int fd, BLI_stat_t *buffer) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
int BLI_stat(const char *path, BLI_stat_t *buffer) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL();
#ifdef WIN32
int BLI_wstat(const wchar_t *path, BLI_stat_t *buffer);
diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c
index fd5de717a24..7c481868d64 100644
--- a/source/blender/blenlib/intern/storage.c
+++ b/source/blender/blenlib/intern/storage.c
@@ -180,8 +180,8 @@ double BLI_dir_free_space(const char *dir)
*/
size_t BLI_file_descriptor_size(int file)
{
- struct stat st;
- if ((file < 0) || (fstat(file, &st) == -1)) {
+ BLI_stat_t st;
+ if ((file < 0) || (BLI_fstat(file, &st) == -1)) {
return -1;
}
return st.st_size;
@@ -246,6 +246,15 @@ int BLI_exists(const char *name)
}
#ifdef WIN32
+int BLI_fstat(int fd, BLI_stat_t *buffer)
+{
+# if defined(_MSC_VER)
+ return _fstat64(fd, buffer);
+# else
+ return _fstat(fd, buffer);
+# endif
+}
+
int BLI_stat(const char *path, BLI_stat_t *buffer)
{
int r;
@@ -266,6 +275,11 @@ int BLI_wstat(const wchar_t *path, BLI_stat_t *buffer)
# endif
}
#else
+int BLI_fstat(int fd, struct stat *buffer)
+{
+ return fstat(fd, buffer);
+}
+
int BLI_stat(const char *path, struct stat *buffer)
{
return stat(path, buffer);
@@ -298,8 +312,8 @@ static void *file_read_data_as_mem_impl(FILE *fp,
size_t pad_bytes,
size_t *r_size)
{
- struct stat st;
- if (fstat(fileno(fp), &st) == -1) {
+ BLI_stat_t st;
+ if (BLI_fstat(fileno(fp), &st) == -1) {
return NULL;
}
if (S_ISDIR(st.st_mode)) {