diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-06-18 05:37:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-06-18 05:49:10 +0300 |
commit | 28c34d332f941259de6775af57758609ee7c92e9 (patch) | |
tree | d942a49bf7b619639af493e5d3dab53df0aec47f /source/blender/blenlib | |
parent | 03efc37a6ebc4a6b288fc6cc42a172f4a1e85192 (diff) |
Assert when relative paths are passed to IO ops
This is typically an error (& hangs a few seconds on win32), best catch early.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r-- | source/blender/blenlib/intern/fileops.c | 10 | ||||
-rw-r--r-- | source/blender/blenlib/intern/storage.c | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/fileops.c b/source/blender/blenlib/intern/fileops.c index d6fe5e52b95..c3e889842c1 100644 --- a/source/blender/blenlib/intern/fileops.c +++ b/source/blender/blenlib/intern/fileops.c @@ -657,21 +657,29 @@ static int delete_single_file(const char *from, const char *UNUSED(to)) FILE *BLI_fopen(const char *filename, const char *mode) { + BLI_assert(!BLI_path_is_rel(filename)); + return fopen(filename, mode); } void *BLI_gzopen(const char *filename, const char *mode) { + BLI_assert(!BLI_path_is_rel(filename)); + return gzopen(filename, mode); } int BLI_open(const char *filename, int oflag, int pmode) { + BLI_assert(!BLI_path_is_rel(filename)); + return open(filename, oflag, pmode); } int BLI_access(const char *filename, int mode) { + BLI_assert(!BLI_path_is_rel(filename)); + return access(filename, mode); } @@ -682,6 +690,8 @@ int BLI_access(const char *filename, int mode) */ int BLI_delete(const char *file, bool dir, bool recursive) { + BLI_assert(!BLI_path_is_rel(file)); + if (recursive) { return recursive_operation(file, NULL, NULL, delete_single_file, delete_callback_post); } diff --git a/source/blender/blenlib/intern/storage.c b/source/blender/blenlib/intern/storage.c index 7b7733dea37..7fdf6ec8101 100644 --- a/source/blender/blenlib/intern/storage.c +++ b/source/blender/blenlib/intern/storage.c @@ -227,6 +227,7 @@ int BLI_exists(const char *name) #else struct stat st; BLI_assert(name); + BLI_assert(!BLI_path_is_rel(name)); if (stat(name, &st)) return(0); #endif return(st.st_mode); |