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
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-07-08 18:04:09 +0300
committerJacques Lucke <jacques@blender.org>2020-07-08 18:05:52 +0300
commit05365d1376760d70751243ae6360e2fd61f5a213 (patch)
treeae043de880c46cf25e02652bb3446c3e481ea941 /source/blender/functions
parent2de5de57c58521862e0fecc95fc474ea347b7468 (diff)
Functions: support hashing MFDataType and CPPType
Diffstat (limited to 'source/blender/functions')
-rw-r--r--source/blender/functions/FN_cpp_type.hh6
-rw-r--r--source/blender/functions/FN_multi_function_data_type.hh5
2 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/functions/FN_cpp_type.hh b/source/blender/functions/FN_cpp_type.hh
index 686ecffb445..890530805d8 100644
--- a/source/blender/functions/FN_cpp_type.hh
+++ b/source/blender/functions/FN_cpp_type.hh
@@ -66,6 +66,7 @@
* pointers to virtual member functions.
*/
+#include "BLI_hash.hh"
#include "BLI_index_mask.hh"
#include "BLI_math_base.h"
#include "BLI_string_ref.hh"
@@ -481,6 +482,11 @@ class CPPType {
return default_value_;
}
+ uint32_t hash() const
+ {
+ return DefaultHash<const CPPType *>{}(this);
+ }
+
/**
* Two types only compare equal when their pointer is equal. No two instances of CPPType for the
* same C++ type should be created.
diff --git a/source/blender/functions/FN_multi_function_data_type.hh b/source/blender/functions/FN_multi_function_data_type.hh
index 78f0d96fb80..57aea046006 100644
--- a/source/blender/functions/FN_multi_function_data_type.hh
+++ b/source/blender/functions/FN_multi_function_data_type.hh
@@ -108,6 +108,11 @@ class MFDataType {
BLI_assert(false);
return "";
}
+
+ uint hash() const
+ {
+ return DefaultHash<CPPType>{}(*type_) + (uint32_t)category_;
+ }
};
inline bool operator==(const MFDataType &a, const MFDataType &b)