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

Reply via email to