[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