[Bf-blender-cvs] [abd5b4a] alembic_basic_io: Avoid tryijng to open files that do not exist.

Kévin Dietrich noreply at git.blender.org
Sat Jun 11 14:59:35 CEST 2016


Commit: abd5b4a1c175afe81ad4a8a2dded279179f3e9bc
Author: Kévin Dietrich
Date:   Sat Jun 11 12:41:59 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rBabd5b4a1c175afe81ad4a8a2dded279179f3e9bc

Avoid tryijng to open files that do not exist.

===================================================================

M	source/blender/blenkernel/BKE_cachefile.h
M	source/blender/blenkernel/intern/cachefile.c
M	source/blender/modifiers/intern/MOD_meshsequencecache.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_cachefile.h b/source/blender/blenkernel/BKE_cachefile.h
index 7218e27..c35a676 100644
--- a/source/blender/blenkernel/BKE_cachefile.h
+++ b/source/blender/blenkernel/BKE_cachefile.h
@@ -38,7 +38,7 @@ struct Main;
 
 void *BKE_cachefile_add(struct Main *bmain, const char *name);
 
-void BKE_cachefile_filepath_get(struct Scene *scene,
+bool BKE_cachefile_filepath_get(struct Scene *scene,
                                 struct CacheFile *cache_file,
                                 char *r_filename);
 
diff --git a/source/blender/blenkernel/intern/cachefile.c b/source/blender/blenkernel/intern/cachefile.c
index 2d10318..0548264 100644
--- a/source/blender/blenkernel/intern/cachefile.c
+++ b/source/blender/blenkernel/intern/cachefile.c
@@ -51,7 +51,7 @@ void *BKE_cachefile_add(Main *bmain, const char *name)
 	return cache_file;
 }
 
-void BKE_cachefile_filepath_get(Scene *scene, CacheFile *cache_file, char *r_filepath)
+bool BKE_cachefile_filepath_get(Scene *scene, CacheFile *cache_file, char *r_filepath)
 {
 	const float frame = BKE_scene_frame_get(scene);
 	BLI_strncpy(r_filepath, cache_file->filepath, 1024);
@@ -64,11 +64,9 @@ void BKE_cachefile_filepath_get(Scene *scene, CacheFile *cache_file, char *r_fil
 		BLI_path_frame_strip(r_filepath, true, ext);
 		BLI_path_frame(r_filepath, frame, frame_len);
 		BLI_ensure_extension(r_filepath, 1024, ext);
-
-		if (!BLI_exists(r_filepath)) {
-			return;
-		}
 	}
+
+	return BLI_exists(r_filepath);
 }
 
 float BKE_cachefile_time_offset(CacheFile *cache_file, float time)
diff --git a/source/blender/modifiers/intern/MOD_meshsequencecache.c b/source/blender/modifiers/intern/MOD_meshsequencecache.c
index 26c141d..4bfbc2f 100644
--- a/source/blender/modifiers/intern/MOD_meshsequencecache.c
+++ b/source/blender/modifiers/intern/MOD_meshsequencecache.c
@@ -75,7 +75,9 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
 	Scene *scene = md->scene;
 
 	char filepath[1024];
-	BKE_cachefile_filepath_get(scene, mcmd->cache_file, filepath);
+	if (!BKE_cachefile_filepath_get(scene, mcmd->cache_file, filepath)) {
+		return dm;
+	}
 
 	const float frame = BKE_scene_frame_get(scene);
 	const float time = BKE_cachefile_time_offset(mcmd->cache_file, frame / FPS);




More information about the Bf-blender-cvs mailing list