[Bf-blender-cvs] [e6a26bf] soc-2016-layer_manager: Found & removed some more Scene.base usages

Julian Eisel noreply at git.blender.org
Sat Aug 13 01:51:33 CEST 2016


Commit: e6a26bf485018decf791197d54b2fdf603a30aee
Author: Julian Eisel
Date:   Sat Aug 13 01:49:13 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rBe6a26bf485018decf791197d54b2fdf603a30aee

Found & removed some more Scene.base usages

Also NULL the Base.next/prev pointers after version patching

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

M	source/blender/alembic/intern/abc_exporter.cc
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/collada/DocumentImporter.cpp

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

diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 127e885..5ccdf91 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -59,6 +59,7 @@ extern "C" {
 #include "BKE_idprop.h"
 #include "BKE_main.h"
 #include "BKE_modifier.h"
+#include "BKE_object.h"
 #include "BKE_particle.h"
 #include "BKE_scene.h"
 }
@@ -357,9 +358,8 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled)
 
 void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx)
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 
 		if (export_object(&m_settings, ob)) {
@@ -375,25 +375,22 @@ void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx)
 					exploreTransform(eval_ctx, ob, ob->parent, NULL);
 			}
 		}
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::createTransformWritersFlat()
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 
 		if (export_object(&m_settings, ob) && object_is_shape(ob)) {
 			std::string name = get_id_name(ob);
 			m_xforms[name] = new AbcTransformWriter(ob, m_archive.getTop(), 0, m_trans_sampling_index, m_settings);
 		}
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::exploreTransform(EvaluationContext *eval_ctx, Object *ob, Object *parent, Object *dupliObParent)
@@ -461,14 +458,12 @@ void AbcExporter::createTransformWriter(Object *ob, Object *parent, Object *dupl
 
 void AbcExporter::createShapeWriters(EvaluationContext *eval_ctx)
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 		exploreObject(eval_ctx, ob, NULL);
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::exploreObject(EvaluationContext *eval_ctx, Object *ob, Object *dupliObParent)
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index a1bf33c..ac59a8c 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -1336,6 +1336,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 				for (Base *base = sce->base.first, *base_next; base; base = base_next) {
 					base_next = base->next;
 					BKE_objectlayer_base_assign_ex(base, litem, true, false);
+					base->prev = base->next = NULL;
 				}
 				BLI_listbase_clear(&sce->base);
 			}
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
index 226f319..ff4df9f 100644
--- a/source/blender/collada/DocumentImporter.cpp
+++ b/source/blender/collada/DocumentImporter.cpp
@@ -266,7 +266,7 @@ void DocumentImporter::finish()
 
 			Base *base = BKE_scene_base_find(sce, ob);
 			if (base) {
-				BLI_remlink(&sce->base, base);
+				BKE_objectlayer_base_unassign(base);
 				BKE_libblock_free_us(G.main, base->object);
 				if (sce->basact == base)
 					sce->basact = NULL;




More information about the Bf-blender-cvs mailing list