[Bf-blender-cvs] [aabb8db] blender-v2.76-release: Fix leak in UI Panels

Campbell Barton noreply at git.blender.org
Wed Sep 23 16:11:51 CEST 2015


Commit: aabb8db753bab618a3ecc5685acd1486cc13bd56
Author: Campbell Barton
Date:   Sat Sep 19 17:38:36 2015 +1000
Branches: blender-v2.76-release
https://developer.blender.org/rBaabb8db753bab618a3ecc5685acd1486cc13bd56

Fix leak in UI Panels

Switching screens quickly didn't free the panels activedata.

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

M	source/blender/blenkernel/intern/screen.c

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

diff --git a/source/blender/blenkernel/intern/screen.c b/source/blender/blenkernel/intern/screen.c
index 4125a35..7401ef2 100644
--- a/source/blender/blenkernel/intern/screen.c
+++ b/source/blender/blenkernel/intern/screen.c
@@ -308,7 +308,16 @@ void BKE_area_region_free(SpaceType *st, ARegion *ar)
 		ar->v2d.tab_offset = NULL;
 	}
 
-	BLI_freelistN(&ar->panels);
+	if (!BLI_listbase_is_empty(&ar->panels)) {
+		Panel *pa, *pa_next;
+		for (pa = ar->panels.first; pa; pa = pa_next) {
+			pa_next = pa->next;
+			if (pa->activedata) {
+				MEM_freeN(pa->activedata);
+			}
+			MEM_freeN(pa);
+		}
+	}
 
 	for (uilst = ar->ui_lists.first; uilst; uilst = uilst->next) {
 		if (uilst->dyn_data) {




More information about the Bf-blender-cvs mailing list