[Bf-blender-cvs] [f61c30f804e] master: Cleanup: get rid of last G.main in BMesh code.

Bastien Montagne noreply at git.blender.org
Wed Jun 13 16:29:42 CEST 2018


Commit: f61c30f804e36bf00e7124514f02bbee42e0197d
Author: Bastien Montagne
Date:   Wed Jun 13 16:29:12 2018 +0200
Branches: master
https://developer.blender.org/rBf61c30f804e36bf00e7124514f02bbee42e0197d

Cleanup: get rid of last G.main in BMesh code.

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

M	source/blender/blenkernel/intern/paint.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/bmesh/intern/bmesh_mesh_conv.c
M	source/blender/bmesh/intern/bmesh_mesh_conv.h
M	source/blender/bmesh/operators/bmo_mesh_conv.c
M	source/blender/collada/collada_utils.cpp
M	source/blender/editors/include/ED_mesh.h
M	source/blender/editors/mesh/editmesh_tools.c
M	source/blender/editors/mesh/editmesh_undo.c
M	source/blender/editors/mesh/editmesh_utils.c
M	source/blender/editors/mesh/mesh_data.c
M	source/blender/editors/object/object_edit.c
M	source/blender/editors/object/object_hook.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/sculpt_paint/paint_image_proj.c
M	source/blender/makesrna/intern/rna_object.c
M	source/blender/python/bmesh/bmesh_py_types.c
M	source/blenderplayer/bad_level_call_stubs/stubs.c

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

diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c
index b55f9ad6f62..46fb7c9f9b3 100644
--- a/source/blender/blenkernel/intern/paint.c
+++ b/source/blender/blenkernel/intern/paint.c
@@ -703,7 +703,7 @@ static void sculptsession_bm_to_me_update_data_only(Object *ob, bool reorder)
 			}
 			if (reorder)
 				BM_log_mesh_elems_reorder(ss->bm, ss->bm_log);
-			BM_mesh_bm_to_me(ss->bm, ob->data, (&(struct BMeshToMeshParams){0}));
+			BM_mesh_bm_to_me(NULL, ss->bm, ob->data, (&(struct BMeshToMeshParams){.calc_object_remap = false}));
 		}
 	}
 }
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 69199d62556..ca2c683a5ad 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1827,7 +1827,7 @@ static void prepare_mesh_for_viewport_render(Main *bmain, Scene *scene)
 			if (check_rendered_viewport_visible(bmain)) {
 				BMesh *bm = mesh->edit_btmesh->bm;
 				BM_mesh_bm_to_me(
-				        bm, mesh,
+				        bmain, bm, mesh,
 				        (&(struct BMeshToMeshParams){
 				            .calc_object_remap = true,
 				        }));
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index d172dd685eb..937853463a2 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4501,12 +4501,12 @@ static void lib_link_mesh(FileData *fd, Main *main)
 			if (me->totface && !me->totpoly) {
 				/* temporarily switch main so that reading from
 				 * external CustomData works */
-				Main *gmain = G.main;
-				G.main = main;
+				Main *gmain = G_MAIN;
+				G_MAIN = main;
 				
 				BKE_mesh_do_versions_convert_mfaces_to_mpolys(me);
 				
-				G.main = gmain;
+				G_MAIN = gmain;
 			}
 
 			/*
@@ -8447,17 +8447,18 @@ static void convert_tface_mt(FileData *fd, Main *main)
 	
 	/* this is a delayed do_version (so it can create new materials) */
 	if (main->versionfile < 259 || (main->versionfile == 259 && main->subversionfile < 3)) {
-		//XXX hack, material.c uses G.main all over the place, instead of main
-		// temporarily set G.main to the current main
-		gmain = G.main;
-		G.main = main;
+		//XXX hack, material.c uses G_MAIN all over the place, instead of main
+		/* XXX NOTE: this hack should not beneeded anymore... but will check/remove this in 2.8 code rather */
+		// temporarily set G_MAIN to the current main
+		gmain = G_MAIN;
+		G_MAIN = main;
 		
 		if (!(do_version_tface(main))) {
 			BKE_report(fd->reports, RPT_WARNING, "Texface conversion problem (see error in console)");
 		}
 		
-		//XXX hack, material.c uses G.main allover the place, instead of main
-		G.main = gmain;
+		//XXX hack, material.c uses G_MAIN allover the place, instead of main
+		G_MAIN = gmain;
 	}
 }
 
@@ -10324,7 +10325,7 @@ static Main *library_link_begin(Main *mainvar, FileData **fd, const char *filepa
 /**
  * Initialize the BlendHandle for linking library data.
  *
- * \param mainvar The current main database, e.g. G.main or CTX_data_main(C).
+ * \param mainvar The current main database, e.g. G_MAIN or CTX_data_main(C).
  * \param bh A blender file handle as returned by \a BLO_blendhandle_from_file or \a BLO_blendhandle_from_memory.
  * \param filepath Used for relative linking, copied to the \a lib->name.
  * \return the library Main, to be passed to \a BLO_library_append_named_part as \a mainl.
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 288d42f6398..88e6cbc8d24 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -4140,7 +4140,7 @@ bool BLO_write_file(
 			if (G.relbase_valid) {
 				/* blend may not have been saved before. Tn this case
 				 * we should not have any relative paths, but if there
-				 * is somehow, an invalid or empty G.main->name it will
+				 * is somehow, an invalid or empty G_MAIN->name it will
 				 * print an error, don't try make the absolute in this case. */
 				BKE_bpath_absolute_convert(mainvar, BKE_main_blendfile_path_from_global(), NULL);
 			}
@@ -4148,7 +4148,7 @@ bool BLO_write_file(
 	}
 
 	if (write_flags & G_FILE_RELATIVE_REMAP) {
-		/* note, making relative to something OTHER then G.main->name */
+		/* note, making relative to something OTHER then G_MAIN->name */
 		BKE_bpath_relative_convert(mainvar, filepath, NULL);
 	}
 
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c
index 474b4656a68..340b0b70772 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_conv.c
+++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c
@@ -590,8 +590,12 @@ BLI_INLINE void bmesh_quick_edgedraw_flag(MEdge *med, BMEdge *e)
 	}
 }
 
+/**
+ *
+ * \param bmain May be NULL in case \a calc_object_remap parameter option is set.
+ */
 void BM_mesh_bm_to_me(
-        BMesh *bm, Mesh *me,
+        Main *bmain, BMesh *bm, Mesh *me,
         const struct BMeshToMeshParams *params)
 {
 	MLoop *mloop;
@@ -752,11 +756,12 @@ void BM_mesh_bm_to_me(
 
 	/* patch hook indices and vertex parents */
 	if (params->calc_object_remap && (ototvert > 0)) {
+		BLI_assert(bmain != NULL);
 		Object *ob;
 		ModifierData *md;
 		BMVert **vertMap = NULL;
 
-		for (ob = G.main->object.first; ob; ob = ob->id.next) {
+		for (ob = bmain->object.first; ob; ob = ob->id.next) {
 			if ((ob->parent) && (ob->parent->data == me) && ELEM(ob->partype, PARVERT1, PARVERT3)) {
 
 				if (vertMap == NULL) {
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.h b/source/blender/bmesh/intern/bmesh_mesh_conv.h
index 6e9d62349ea..008960e7f6e 100644
--- a/source/blender/bmesh/intern/bmesh_mesh_conv.h
+++ b/source/blender/bmesh/intern/bmesh_mesh_conv.h
@@ -32,6 +32,7 @@
  *  \ingroup bmesh
  */
 
+struct Main;
 struct Mesh;
 
 void BM_mesh_cd_validate(BMesh *bm);
@@ -60,8 +61,8 @@ struct BMeshToMeshParams {
 	int64_t cd_mask_extra;
 };
 void BM_mesh_bm_to_me(
-        BMesh *bm, struct Mesh *me,
+        struct Main *bmain, BMesh *bm, struct Mesh *me,
         const struct BMeshToMeshParams *params)
-ATTR_NONNULL(1, 2, 3);
+ATTR_NONNULL(2, 3, 4);
 
 #endif /* __BMESH_MESH_CONV_H__ */
diff --git a/source/blender/bmesh/operators/bmo_mesh_conv.c b/source/blender/bmesh/operators/bmo_mesh_conv.c
index 7311ed5ce64..cc1f45baf0c 100644
--- a/source/blender/bmesh/operators/bmo_mesh_conv.c
+++ b/source/blender/bmesh/operators/bmo_mesh_conv.c
@@ -38,6 +38,7 @@
 #include "bmesh.h"
 #include "intern/bmesh_operators_private.h"
 
+#include "BKE_global.h"
 
 void bmo_mesh_to_bmesh_exec(BMesh *bm, BMOperator *op)
 {
@@ -72,7 +73,7 @@ void bmo_bmesh_to_mesh_exec(BMesh *bm, BMOperator *op)
 	/* Object *ob = BMO_slot_ptr_get(op, "object"); */
 
 	BM_mesh_bm_to_me(
-	        bm, me,
+	        G.main, bm, me,
 	        (&(struct BMeshToMeshParams){
 	            .calc_object_remap = true,
 	        }));
diff --git a/source/blender/collada/collada_utils.cpp b/source/blender/collada/collada_utils.cpp
index 153bc8b28bd..8a4e21a5434 100644
--- a/source/blender/collada/collada_utils.cpp
+++ b/source/blender/collada/collada_utils.cpp
@@ -442,7 +442,8 @@ void bc_triangulate_mesh(Mesh *me)
 	BM_mesh_triangulate(bm, quad_method, use_beauty, tag_only, NULL, NULL, NULL);
 
 	BMeshToMeshParams bm_to_me_params = {0};
-	BM_mesh_bm_to_me(bm, me, &bm_to_me_params);
+	bm_to_me_params.calc_object_remap = false;
+	BM_mesh_bm_to_me(NULL, bm, me, &bm_to_me_params);
 	BM_mesh_free(bm);
 }
 
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index 8edbcc5f56c..d3e3c7b45fa 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -83,7 +83,7 @@ void EDBM_mesh_clear(struct BMEditMesh *em);
 void EDBM_selectmode_to_scene(struct bContext *C);
 void EDBM_mesh_make(struct Object *ob, const int select_mode, const bool add_key_index);
 void EDBM_mesh_free(struct BMEditMesh *em);
-void EDBM_mesh_load(struct Object *ob);
+void EDBM_mesh_load(struct Main *bmain, struct Object *ob);
 struct DerivedMesh *EDBM_mesh_deform_dm_get(struct BMEditMesh *em);
 
 /* flushes based on the current select mode.  if in vertex select mode,
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index 0625ebe6dd6..70c4f341bd8 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -3223,7 +3223,7 @@ static Base *mesh_separate_tagged(Main *bmain, Scene *scene, Base *base_old, BMe
 
 	BM_mesh_normals_update(bm_new);
 
-	BM_mesh_bm_to_me(bm_new, base_new->object->data, (&(struct BMeshToMeshParams){0}));
+	BM_mesh_bm_to_me(bmain, bm_new, base_new->object->data, (&(struct BMeshToMeshParams){0}));
 
 	BM_mesh_free(bm_new);
 	((Mesh *)base_new->object->data)->edit_btmesh = NULL;
@@ -3526,7 +3526,7 @@ static int edbm_separate_exec(bContext *C, wmOperator *op)
 
 					if (retval_iter) {
 						BM_mesh_bm_to_me(
-						        bm_old, me,
+						        bmain, bm_old, me,
 						        (&(struct BMeshToMeshParams){
 						            .calc_object_remap = true,
 						        }));
diff --git a/source/blender/editors/mesh/editmesh_undo.c b/source/blender/editors/mesh/editmesh_undo.c
index 50aecd0a821..18c383deff0 100644
--- a/source/blender/editors/mesh/editmesh_undo.c
+++ b/source/blender/editors/mesh/editmesh_undo.c
@@ -502,8 +502,8 @@ static void *undomesh_from_editmesh(UndoMesh *um, BMEditMesh *em, Key *key)
 	/* BM_mesh_validate(em->bm); */ /* for troubleshooting */
 
 	BM_mesh_bm_to_me(
-	        em->bm, &um->me, (&(struct BMeshToMeshParams){
-	            /* Undo code should not be manipulating 'G.main->object' hooks/vertex-parent. */
+	        NULL, em->bm, &um->me, (&(struct BMeshToMeshParams){
+	            /* Undo code should not be manipulating 'G_MAIN->object' hooks/vertex-parent. */
 	            .calc_object_remap = false,
 	            .cd_mask_extra = CD_MASK_SHAPE_KEYINDEX,
 	        }));
diff --git a/source/blender/editors/mesh/editmesh_utils.c b/source/blender/editors/mesh/editmesh_utils.c
index 41e8a963383..e1303b14f0e 100644
--- a/source/blender/editors/mesh/

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list