Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2018-06-22 13:35:41 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-06-22 13:35:41 +0300
commit2fe528424d168f124efca5d94c6b0363be49dbf3 (patch)
tree04bbd895c10e1e155a90eb53f268b593e6421e96 /source/blender/makesrna/intern/rna_object.c
parent101fd7ec0639c03ab017e90cb46367f50e512cbb (diff)
Cleanup: remove last G.main from RNA.
Again, we cannot actually get rid of G_MAIN global access here, so in most case just 'marked' them as valid, and added assert checks to ensure we do only work with IDs in G_MAIN in those cases.
Diffstat (limited to 'source/blender/makesrna/intern/rna_object.c')
-rw-r--r--source/blender/makesrna/intern/rna_object.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index 87c9291af8d..11cfdbcaa22 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -381,6 +381,9 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
return;
}
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(id));
+
if (ob->type == OB_EMPTY) {
if (ob->data) {
id_us_min((ID *)ob->data);
@@ -393,7 +396,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
}
}
else if (ob->type == OB_MESH) {
- BKE_mesh_assign_object(G.main, ob, (Mesh *)id);
+ BKE_mesh_assign_object(G_MAIN, ob, (Mesh *)id);
}
else {
if (ob->data) {
@@ -405,7 +408,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
id_us_plus(id);
ob->data = id;
- test_object_materials(G.main, ob, id);
+ test_object_materials(G_MAIN, ob, id);
if (GS(id->name) == ID_CU)
BKE_curve_type_test(ob);
@@ -713,7 +716,9 @@ static void rna_Object_active_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
DAG_id_tag_update(value.data, 0);
- assign_material(G.main, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(value.data));
+ assign_material(G_MAIN, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
}
static int rna_Object_active_material_editable(PointerRNA *ptr, const char **UNUSED(r_info))
@@ -885,7 +890,9 @@ static void rna_MaterialSlot_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
int index = (Material **)ptr->data - ob->mat;
- assign_material(G.main, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(value.data));
+ assign_material(G_MAIN, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
}
static int rna_MaterialSlot_link_get(PointerRNA *ptr)