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
path: root/extern
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-01-13 20:55:58 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-01-15 18:27:55 +0300
commit542e0c67bad1e17ca5d260805d2055f7da506df9 (patch)
tree5922e8873ccc56e48951a8a60afd788c4b142b6d /extern
parent3fa548f986271321663c1877ee499e9724a41324 (diff)
Fluid: Updated Mantaflow source files
The memory leak described in T72498 has been fixed in Mantaflow, the updated files should reflect this in Blender.
Diffstat (limited to 'extern')
-rw-r--r--extern/mantaflow/helper/pwrapper/registry.cpp8
-rw-r--r--extern/mantaflow/preprocessed/fileio/iomeshes.cpp1
-rw-r--r--extern/mantaflow/preprocessed/gitinfo.h2
3 files changed, 10 insertions, 1 deletions
diff --git a/extern/mantaflow/helper/pwrapper/registry.cpp b/extern/mantaflow/helper/pwrapper/registry.cpp
index 332b9e158ac..3cdc2248b98 100644
--- a/extern/mantaflow/helper/pwrapper/registry.cpp
+++ b/extern/mantaflow/helper/pwrapper/registry.cpp
@@ -128,6 +128,7 @@ class WrapperRegistry {
void registerOperators(ClassData *cls);
void addParentMethods(ClassData *cls, ClassData *base);
WrapperRegistry();
+ ~WrapperRegistry();
std::map<std::string, ClassData *> mClasses;
std::vector<ClassData *> mClassList;
std::vector<InitFunc> mExtInitializers;
@@ -210,6 +211,13 @@ WrapperRegistry::WrapperRegistry()
addClass("PbClass", "PbClass", "");
}
+WrapperRegistry::~WrapperRegistry()
+{
+ // Some static constructions may have called WrapperRegistry.instance() and added
+ // own classes, functions, etc. Ensure everything is cleaned up properly.
+ cleanup();
+}
+
ClassData *WrapperRegistry::getOrConstructClass(const string &classname)
{
map<string, ClassData *>::iterator it = mClasses.find(classname);
diff --git a/extern/mantaflow/preprocessed/fileio/iomeshes.cpp b/extern/mantaflow/preprocessed/fileio/iomeshes.cpp
index 900c9bf2776..79a9e76da3f 100644
--- a/extern/mantaflow/preprocessed/fileio/iomeshes.cpp
+++ b/extern/mantaflow/preprocessed/fileio/iomeshes.cpp
@@ -424,6 +424,7 @@ template<class T> void readMdataUni(const std::string &name, MeshDataImpl<T> *md
assertMsg(gzread(gzf, &head, sizeof(UniMeshHeader)) == sizeof(UniMeshHeader),
"can't read file, no header present");
mdata->resize(head.dim);
+
assertMsg(head.dim == mdata->size(), "mdata size doesn't match");
# if FLOATINGPOINT_PRECISION != 1
MeshDataImpl<T> temp(mdata->getParent());
diff --git a/extern/mantaflow/preprocessed/gitinfo.h b/extern/mantaflow/preprocessed/gitinfo.h
index 154f928dc2f..aa88515494e 100644
--- a/extern/mantaflow/preprocessed/gitinfo.h
+++ b/extern/mantaflow/preprocessed/gitinfo.h
@@ -1,3 +1,3 @@
-#define MANTA_GIT_VERSION "commit 761849c592daaea320f9026768b5a0750528009c"
+#define MANTA_GIT_VERSION "commit 3701f32027ab499401581ed70b6999b284635ad8"