diff options
author | Jacques Lucke <jacques@blender.org> | 2020-07-08 18:04:09 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-07-08 18:05:52 +0300 |
commit | 05365d1376760d70751243ae6360e2fd61f5a213 (patch) | |
tree | ae043de880c46cf25e02652bb3446c3e481ea941 /source/blender | |
parent | 2de5de57c58521862e0fecc95fc474ea347b7468 (diff) |
Functions: support hashing MFDataType and CPPType
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/functions/FN_cpp_type.hh | 6 | ||||
-rw-r--r-- | source/blender/functions/FN_multi_function_data_type.hh | 5 |
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) |