[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