[Bf-blender-cvs] [2b29a008c18] greasepencil-object: Simplify cache_node_update and add comments
Falk David
noreply at git.blender.org
Mon Feb 7 18:35:12 CET 2022
Commit: 2b29a008c18677be2e1fb8823c6b0172b221608d
Author: Falk David
Date: Wed Feb 2 11:47:36 2022 +0100
Branches: greasepencil-object
https://developer.blender.org/rB2b29a008c18677be2e1fb8823c6b0172b221608d
Simplify cache_node_update and add comments
===================================================================
M source/blender/blenkernel/intern/gpencil_update_cache.c
===================================================================
diff --git a/source/blender/blenkernel/intern/gpencil_update_cache.c b/source/blender/blenkernel/intern/gpencil_update_cache.c
index b3a17287c24..203577f8ac2 100644
--- a/source/blender/blenkernel/intern/gpencil_update_cache.c
+++ b/source/blender/blenkernel/intern/gpencil_update_cache.c
@@ -88,22 +88,22 @@ static void cache_node_update(void *node, void *data)
GPencilUpdateCache *update_cache = ((GPencilUpdateCacheNode *)node)->cache;
GPencilUpdateCache *new_update_cache = (GPencilUpdateCache *)data;
- if (new_update_cache->data == NULL) {
+ /* If the new cache is already "covered" by the current cache, just free it and return. */
+ if (new_update_cache->flag <= update_cache->flag) {
update_cache_free(new_update_cache);
return;
}
update_cache->data = new_update_cache->data;
- if (update_cache->flag == GP_UPDATE_NODE_NO_COPY) {
- update_cache->flag = new_update_cache->flag;
- }
- if (new_update_cache->flag == GP_UPDATE_NODE_FULL_COPY) {
- update_cache->flag = new_update_cache->flag;
- if (update_cache->children != NULL) {
- BLI_dlrbTree_free(update_cache->children, cache_node_free);
- MEM_freeN(update_cache->children);
- }
+ update_cache->flag = new_update_cache->flag;
+
+ /* In case the new cache does a full update, remove its children since they will be all
+ * updated by this cache. */
+ if (new_update_cache->flag == GP_UPDATE_NODE_FULL_COPY && update_cache->children != NULL) {
+ BLI_dlrbTree_free(update_cache->children, cache_node_free);
+ MEM_freeN(update_cache->children);
}
+
update_cache_free(new_update_cache);
}
More information about the Bf-blender-cvs
mailing list