[Bf-blender-cvs] [b46e26cd349] functions: Fix exception when using the node search

Jacques Lucke noreply at git.blender.org
Tue Aug 6 16:17:40 CEST 2019


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



More information about the Bf-blender-cvs mailing list