[Bf-blender-cvs] [631d08a] master: Fix leak in UI Panels

Campbell Barton noreply at git.blender.org
Sat Sep 19 09:55:21 CEST 2015


Commit: 631d08aaed39a52c1479cd014c9941824743b5c1
Author: Campbell Barton
Date:   Sat Sep 19 17:38:36 2015 +1000
Branches: master
https://developer.blender.org/rB631d08aaed39a52c1479cd014c9941824743b5c1

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