Commit: b46e26cd349b8560e32850851775097b926bbca8
Author: Jacques Lucke
Date: Tue Aug 6 16:17:35 2019 +0200
Branches: functions
https://developer.blender.org/rBb46e26cd349b8560e32850851775097b926bbca8
Fix exception when using the node search
===================================================================
M release/scripts/startup/nodes/utils/enum_items_cache.py
===================================================================
diff --git a/release/scripts/startup/nodes/utils/enum_items_cache.py
b/release/scripts/startup/nodes/utils/enum_items_cache.py
index fcba1539dac..1b1ca0c8937 100644
--- a/release/scripts/startup/nodes/utils/enum_items_cache.py
+++ b/release/scripts/startup/nodes/utils/enum_items_cache.py
@@ -1,11 +1,20 @@
import functools
+from collections import defaultdict
-cached_items = set()
+cached_item_tuples_by_hash = defaultdict(list)
def cache_enum_items(items_cb):
+
@functools.wraps(items_cb)
def wrapper(self, context):
- items = items_cb(self, context)
- cached_items.update(items)
- return items
+ item_tuples = tuple(items_cb(self, context))
+ item_tuples_hash = hash(item_tuples)
+
+ for cached_item_tuple in cached_item_tuples_by_hash[item_tuples_hash]:
+ if cached_item_tuple == item_tuples:
+ return cached_item_tuple
+ else:
+ cached_item_tuples_by_hash[item_tuples_hash].append(item_tuples)
+ return item_tuples
+
return wrapper
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs