[Bf-blender-cvs] [2efb916] soc-2016-layer_manager: Deprecate Base.next/prev pointers

Julian Eisel noreply at git.blender.org
Fri Aug 12 17:19:54 CEST 2016


Commit: 2efb91609f9f313beb0aa5db0e20c4fe3e404386
Author: Julian Eisel
Date:   Fri Aug 12 17:17:15 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rB2efb91609f9f313beb0aa5db0e20c4fe3e404386

Deprecate Base.next/prev pointers

For now we won't use them, but we might go back to storing bases in lists again to avoid trouble with file read/write. However, these lists will still work different than the current base list.

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

M	source/blender/blenkernel/intern/dynamicpaint.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/editors/space_logic/logic_window.c
M	source/blender/editors/space_outliner/outliner_tools.c
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/makesdna/DNA_scene_types.h

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

diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index 45d9b9f..e3dcad0 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -507,7 +507,7 @@ static int surface_getBrushFlags(DynamicPaintSurface *surface, const Scene *scen
 		if (surface->brush_group)
 			go = go->next;
 		else
-			base = base->next;
+			base = BKE_objectlayer_base_next_find(base, false);
 
 		if (!brushObj) {
 			continue;
@@ -5466,7 +5466,7 @@ static int dynamicPaint_doStep(Scene *scene, Object *ob, DynamicPaintSurface *su
 			if (surface->brush_group)
 				go = go->next;
 			else
-				base = base->next;
+				base = BKE_objectlayer_base_next_find(base, false);
 
 			if (!brushObj) {
 				/* skip item */
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 9254df0..9ffe26c 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -968,7 +968,7 @@ int BKE_scene_base_iter_next(EvaluationContext *eval_ctx, SceneBaseIter *iter,
 			}
 			else {
 				if (*base && iter->phase != F_DUPLI) {
-					*base = (*base)->next;
+					*base = BKE_objectlayer_base_next_find(*base, false);
 					if (*base) {
 						*ob = (*base)->object;
 					}
@@ -2164,9 +2164,10 @@ float get_render_aosss_error(const RenderData *r, float error)
 /* helper function for the SETLOOPER macro */
 Base *_setlooper_base_step(Scene **sce_iter, Base *base)
 {
-	if (base && base->next) {
+	Base *nextbase;
+	if (base && (nextbase = BKE_objectlayer_base_next_find(base, false))) {
 		/* common case, step to the next */
-		return base->next;
+		return nextbase;
 	}
 	else if (base == NULL && BKE_objectlayer_base_first_find((*sce_iter)->object_layers)) {
 		/* first time looping, return the scenes first base */
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index e5ca452..713d8b1 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -498,7 +498,6 @@ static ID **get_selected_and_linked_obs(bContext *C, short *count, short scavisf
 				if (scavisflag & BUTS_ACT_SEL) base->object->scavisflag |= OB_VIS_ACT;
 			}
 		}
-		base= base->next;
 	}
 	BKE_BASES_ITER_END;
 
diff --git a/source/blender/editors/space_outliner/outliner_tools.c b/source/blender/editors/space_outliner/outliner_tools.c
index 4c04bc7..d95c166 100644
--- a/source/blender/editors/space_outliner/outliner_tools.c
+++ b/source/blender/editors/space_outliner/outliner_tools.c
@@ -838,7 +838,7 @@ static Base *outline_delete_hierarchy(bContext *C, ReportList *reports, Scene *s
 	}
 	BKE_BASES_ITER_END;
 
-	base_next = base->next;
+	base_next = BKE_objectlayer_base_next_find(base_next, false);
 
 	Main *bmain = CTX_data_main(C);
 	if (base->object->id.tag & LIB_TAG_INDIRECT) {
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 169da0e..1a263ba 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -1419,8 +1419,13 @@ static bool ed_object_select_pick(
 	}
 	
 	/* always start list from basact in wire mode */
-	startbase =  BKE_objectlayer_base_first_find(scene->object_layers);
-	if (BASACT && BASACT->next) startbase = BASACT->next;
+	startbase = BKE_objectlayer_base_first_find(scene->object_layers);
+	if (BASACT) {
+		Base *nextbase = BKE_objectlayer_base_next_find(BASACT, false);
+		if (nextbase) {
+			startbase = nextbase;
+		}
+	}
 	
 	/* This block uses the control key to make the object selected by its center point rather than its contents */
 	/* in editmode do not activate */
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index c0ca1b3..4571301 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -73,7 +73,7 @@ struct uiLayout;
 
 /* Base - Wrapper for referencing Objects in a Scene */
 typedef struct Base {
-	struct Base *next, *prev;
+	struct Base *next DNA_DEPRECATED, *prev DNA_DEPRECATED;
 	unsigned int lay, selcol;
 	int flag;
 	short sx, sy;




More information about the Bf-blender-cvs mailing list