[Bf-blender-cvs] [bde06da223a] master: Manta: Fix using path as an input and output

Sergey Sharybin noreply at git.blender.org
Tue Dec 17 09:47:40 CET 2019


Commit: bde06da223ab214b007eb5c717a078fa3718e898
Author: Sergey Sharybin
Date:   Tue Dec 17 09:44:27 2019 +0100
Branches: master
https://developer.blender.org/rBbde06da223ab214b007eb5c717a078fa3718e898

Manta: Fix using path as an input and output

It is not guaranteed that the function will give correct result
in such an overlapping inputs.

@sebbas please verify this.

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

M	intern/mantaflow/intern/MANTA_main.cpp

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

diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp
index 6c252f9f8e4..0828fae5351 100644
--- a/intern/mantaflow/intern/MANTA_main.cpp
+++ b/intern/mantaflow/intern/MANTA_main.cpp
@@ -1784,20 +1784,16 @@ void MANTA::exportSmokeScript(FluidModifierData *mmd)
   if (with_debug)
     std::cout << "MANTA::exportSmokeScript()" << std::endl;
 
-  char cacheDirScript[FILE_MAX];
-  cacheDirScript[0] = '\0';
+  char cacheDir[FILE_MAX] = "\0";
+  char cacheDirScript[FILE_MAX] = "\0";
 
-  BLI_path_join(cacheDirScript,
-                sizeof(cacheDirScript),
-                mmd->domain->cache_directory,
-                FLUID_DOMAIN_DIR_SCRIPT,
-                NULL);
-  BLI_path_make_safe(cacheDirScript);
-  BLI_dir_create_recursive(
-      cacheDirScript); /* Create 'script' subdir if it does not exist already */
   BLI_path_join(
-      cacheDirScript, sizeof(cacheDirScript), cacheDirScript, FLUID_DOMAIN_SMOKE_SCRIPT, NULL);
-  BLI_path_make_safe(cacheDirScript);
+      cacheDir, sizeof(cacheDir), mmd->domain->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL);
+  BLI_path_make_safe(cacheDir);
+  /* Create 'script' subdir if it does not exist already */
+  BLI_dir_create_recursive(cacheDir);
+  BLI_path_join(cacheDirScript, sizeof(cacheDirScript), cacheDir, FLUID_DOMAIN_SMOKE_SCRIPT, NULL);
+  BLI_path_make_safe(cacheDir);
 
   bool noise = mmd->domain->flags & FLUID_DOMAIN_USE_NOISE;
   bool heat = mmd->domain->active_fields & FLUID_DOMAIN_ACTIVE_HEAT;
@@ -1891,19 +1887,16 @@ void MANTA::exportLiquidScript(FluidModifierData *mmd)
   if (with_debug)
     std::cout << "MANTA::exportLiquidScript()" << std::endl;
 
-  char cacheDirScript[FILE_MAX];
-  cacheDirScript[0] = '\0';
+  char cacheDir[FILE_MAX] = "\0";
+  char cacheDirScript[FILE_MAX] = "\0";
 
-  BLI_path_join(cacheDirScript,
-                sizeof(cacheDirScript),
-                mmd->domain->cache_directory,
-                FLUID_DOMAIN_DIR_SCRIPT,
-                NULL);
-  BLI_path_make_safe(cacheDirScript);
-  BLI_dir_create_recursive(
-      cacheDirScript); /* Create 'script' subdir if it does not exist already */
   BLI_path_join(
-      cacheDirScript, sizeof(cacheDirScript), cacheDirScript, FLUID_DOMAIN_LIQUID_SCRIPT, NULL);
+      cacheDir, sizeof(cacheDir), mmd->domain->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL);
+  BLI_path_make_safe(cacheDir);
+  /* Create 'script' subdir if it does not exist already */
+  BLI_dir_create_recursive(cacheDir);
+  BLI_path_join(
+      cacheDirScript, sizeof(cacheDirScript), cacheDir, FLUID_DOMAIN_LIQUID_SCRIPT, NULL);
   BLI_path_make_safe(cacheDirScript);
 
   bool mesh = mmd->domain->flags & FLUID_DOMAIN_USE_MESH;



More information about the Bf-blender-cvs mailing list