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:
Diffstat (limited to 'source/blender/makesrna/intern/rna_object.c')
-rw-r--r--source/blender/makesrna/intern/rna_object.c31
1 files changed, 23 insertions, 8 deletions
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index b2cbfbbf6f0..b4453996095 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -427,7 +427,7 @@ static void rna_Object_dependency_update(Main *bmain, Scene *UNUSED(scene), Poin
WM_main_add_notifier(NC_OBJECT | ND_PARENT, ptr->id.data);
}
-static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Object_data_set(struct ReportList *reports, PointerRNA *ptr, PointerRNA value)
{
Object *ob = (Object *)ptr->data;
ID *id = value.data;
@@ -441,8 +441,13 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
return;
}
- BLI_assert(BKE_id_is_in_global_main(&ob->id));
- BLI_assert(BKE_id_is_in_global_main(id));
+ if ((id->tag & LIB_TAG_NO_MAIN) != (ob->id.tag & LIB_TAG_NO_MAIN)) {
+ BKE_report(reports,
+ RPT_ERROR,
+ "Can only assign evaluated data to to evaluated object, or original data to "
+ "original object");
+ return;
+ }
if (ob->type == OB_EMPTY) {
if (ob->data) {
@@ -529,7 +534,9 @@ static bool rna_Object_data_poll(PointerRNA *ptr, const PointerRNA value)
return true;
}
-static void rna_Object_parent_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Object_parent_set(struct ReportList *UNUSED(reports),
+ PointerRNA *ptr,
+ PointerRNA value)
{
Object *ob = (Object *)ptr->data;
Object *par = (Object *)value.data;
@@ -614,7 +621,9 @@ static const EnumPropertyItem *rna_Object_instance_type_itemf(bContext *UNUSED(C
return item;
}
-static void rna_Object_dup_collection_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Object_dup_collection_set(struct ReportList *UNUSED(reports),
+ PointerRNA *ptr,
+ PointerRNA value)
{
Object *ob = (Object *)ptr->data;
Collection *grp = (Collection *)value.data;
@@ -890,7 +899,9 @@ static PointerRNA rna_Object_active_material_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(ptr, &RNA_Material, ma);
}
-static void rna_Object_active_material_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Object_active_material_set(struct ReportList *UNUSED(reports),
+ PointerRNA *ptr,
+ PointerRNA value)
{
Object *ob = (Object *)ptr->id.data;
@@ -1089,7 +1100,9 @@ static PointerRNA rna_MaterialSlot_material_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(ptr, &RNA_Material, ma);
}
-static void rna_MaterialSlot_material_set(PointerRNA *ptr, PointerRNA value)
+static void rna_MaterialSlot_material_set(struct ReportList *UNUSED(reports),
+ PointerRNA *ptr,
+ PointerRNA value)
{
Object *ob = (Object *)ptr->id.data;
int index = (Material **)ptr->data - ob->mat;
@@ -1277,7 +1290,9 @@ static PointerRNA rna_Object_active_constraint_get(PointerRNA *ptr)
return rna_pointer_inherit_refine(ptr, &RNA_Constraint, con);
}
-static void rna_Object_active_constraint_set(PointerRNA *ptr, PointerRNA value)
+static void rna_Object_active_constraint_set(struct ReportList *UNUSED(reports),
+ PointerRNA *ptr,
+ PointerRNA value)
{
Object *ob = (Object *)ptr->id.data;
BKE_constraints_active_set(&ob->constraints, (bConstraint *)value.data);