[Bf-blender-cvs] [25a283acce6] master: Fix memory leak duplicating sequencer strips

Campbell Barton noreply at git.blender.org
Tue Apr 5 01:32:06 CEST 2022


Commit: 25a283acce6b34690468d5a521a44c16ee211c2d
Author: Campbell Barton
Date:   Tue Apr 5 09:22:32 2022 +1000
Branches: master
https://developer.blender.org/rB25a283acce6b34690468d5a521a44c16ee211c2d

Fix memory leak duplicating sequencer strips

Regression in [0] also skip creating a GSet when there are no F-curves.

[0]: e74420124f3a429ad8a1492e56a7e1561d86d6f7

===================================================================

M	source/blender/sequencer/intern/animation.c

===================================================================

diff --git a/source/blender/sequencer/intern/animation.c b/source/blender/sequencer/intern/animation.c
index 27f7316e042..a908bb01d35 100644
--- a/source/blender/sequencer/intern/animation.c
+++ b/source/blender/sequencer/intern/animation.c
@@ -126,10 +126,15 @@ void SEQ_animation_restore_original(Scene *scene, ListBase *list)
 
 void SEQ_animation_duplicate(Scene *scene, Sequence *seq, ListBase *list)
 {
+  if (BLI_listbase_is_empty(list)) {
+    return;
+  }
+
   GSet *fcurves = SEQ_fcurves_by_strip_get(seq, list);
   GSET_FOREACH_BEGIN (FCurve *, fcu, fcurves) {
     FCurve *fcu_cpy = BKE_fcurve_copy(fcu);
     BLI_addtail(&scene->adt->action->curves, fcu_cpy);
   }
   GSET_FOREACH_END();
+  BLI_gset_free(fcurves, NULL);
 }



More information about the Bf-blender-cvs mailing list