[Bf-blender-cvs] [45f336c] master: UI: correct own bad use of bool and document area_copy_data args

Campbell Barton noreply at git.blender.org
Fri Apr 11 01:19:06 CEST 2014


Commit: 45f336c3a10e17227a3a7a4cb599c019d9e761d2
Author: Campbell Barton
Date:   Fri Apr 11 09:17:43 2014 +1000
https://developer.blender.org/rB45f336c3a10e17227a3a7a4cb599c019d9e761d2

UI: correct own bad use of bool and document area_copy_data args

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

M	source/blender/editors/screen/area.c
M	source/blender/editors/screen/screen_edit.c
M	source/blender/editors/screen/screen_intern.h

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

diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 71c55dd..32e4301 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -1374,9 +1374,16 @@ void ED_region_toggle_hidden(bContext *C, ARegion *ar)
 	region_toggle_hidden(C, ar, 1);
 }
 
-/* sa2 to sa1, we swap spaces for fullscreen to keep all allocated data */
-/* area vertices were set */
-void area_copy_data(ScrArea *sa1, ScrArea *sa2, const bool swap_space)
+/**
+ * sa2 to sa1,
+ * we swap spaces for fullscreen to keep all allocated data area vertices were set
+ *
+ * \param swap_space
+ * - 0: overwrite \a sa1 (freeing its data).
+ * - 1: simply swap.
+ * - 2: overwrite \a sa1 (when sa1 is calloc'd memory).
+ */
+void area_copy_data(ScrArea *sa1, ScrArea *sa2, const char swap_space)
 {
 	SpaceType *st;
 	ARegion *ar;
@@ -1387,34 +1394,31 @@ void area_copy_data(ScrArea *sa1, ScrArea *sa2, const bool swap_space)
 	sa1->type = sa2->type;
 	sa1->butspacetype = sa2->butspacetype;
 	
-	if (swap_space == 1) {
+	if (swap_space == 0) {
+		BKE_spacedata_freelist(&sa1->spacedata);
+		BKE_spacedata_copylist(&sa1->spacedata, &sa2->spacedata);
+	}
+	else if (swap_space == 1) {
 		SWAP(ListBase, sa1->spacedata, sa2->spacedata);
-		/* exception: ensure preview is reset */
-//		if (sa1->spacetype == SPACE_VIEW3D)
-// XXX			BIF_view3d_previewrender_free(sa1->spacedata.first);
 	}
 	else if (swap_space == 2) {
 		BKE_spacedata_copylist(&sa1->spacedata, &sa2->spacedata);
 	}
-	else {
-		BKE_spacedata_freelist(&sa1->spacedata);
-		BKE_spacedata_copylist(&sa1->spacedata, &sa2->spacedata);
-	}
 	
 	/* Note; SPACE_EMPTY is possible on new screens */
 	
 	/* regions */
-	if (swap_space == 1) {
+	if (swap_space == 0) {
+		st = BKE_spacetype_from_id(spacetype);
+		for (ar = sa1->regionbase.first; ar; ar = ar->next)
+			BKE_area_region_free(st, ar);
+		BLI_freelistN(&sa1->regionbase);
+	}
+	else if (swap_space == 1) {
 		SWAP(ListBase, sa1->regionbase, sa2->regionbase);
 	}
-	else {
-		if (swap_space < 2) {
-			st = BKE_spacetype_from_id(spacetype);
-			for (ar = sa1->regionbase.first; ar; ar = ar->next)
-				BKE_area_region_free(st, ar);
-			BLI_freelistN(&sa1->regionbase);
-		}
-		
+
+	if (swap_space != 1) {
 		st = BKE_spacetype_from_id(sa2->spacetype);
 		for (ar = sa2->regionbase.first; ar; ar = ar->next) {
 			ARegion *newar = BKE_area_region_copy(st, ar);
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index b10f521..6263199 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1840,7 +1840,7 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
 			return NULL;
 		}
 
-		area_copy_data(old, sa, 1); /*  1 = swap spacelist */
+		area_copy_data(old, sa, 1);
 		if (sa->flag & AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO;
 		old->full = NULL;
 
@@ -1887,7 +1887,7 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
 
 		/* copy area */
 		newa = newa->prev;
-		area_copy_data(newa, sa, 1);  /* 1 = swap spacelist */
+		area_copy_data(newa, sa, 1);
 		sa->flag |= AREA_TEMP_INFO;
 
 		sa->full = oldscreen;
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index b279dda..de04f8e 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -38,7 +38,7 @@ struct Scene;
 #define AZONESPOT       (0.6f * U.widget_unit)
 
 /* area.c */
-void        area_copy_data(ScrArea *sa1, ScrArea *sa2, const bool swap_space);
+void        area_copy_data(ScrArea *sa1, ScrArea *sa2, const char swap_space);
 void		region_toggle_hidden(bContext *C, ARegion *ar, const bool do_fade);
 
 /* screen_edit.c */




More information about the Bf-blender-cvs mailing list