diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-12-17 11:44:27 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-12-17 11:47:12 +0300 |
commit | bde06da223ab214b007eb5c717a078fa3718e898 (patch) | |
tree | eb0bf8ffd4ec832940f4c2ceb9260a7f7252fa46 /intern | |
parent | 7d2d2ffa76647871836f779f013c99e474228f3d (diff) |
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.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/mantaflow/intern/MANTA_main.cpp | 39 |
1 files changed, 16 insertions, 23 deletions
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; |