diff options
50 files changed, 319 insertions, 127 deletions
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index 3e6f93d1323..7fb6f78def1 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -873,7 +873,7 @@ bool id_single_user(bContext *C, ID *id, PointerRNA *ptr, PropertyRNA *prop) /* assign copy */ RNA_id_pointer_create(newid, &idptr); - RNA_property_pointer_set(ptr, prop, idptr); + RNA_property_pointer_set(NULL, ptr, prop, idptr); RNA_property_update(C, ptr, prop); /* tag grease pencil datablock and disable onion */ diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index d1b1f43d8dd..0759b64d14a 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -2007,7 +2007,7 @@ static int font_open_exec(bContext *C, wmOperator *op) id_us_min(&font->id); RNA_id_pointer_create(&font->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_pointer_set(NULL, &pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); } @@ -2090,7 +2090,7 @@ static int font_unlink_exec(bContext *C, wmOperator *op) builtin_font = BKE_vfont_builtin_get(); RNA_id_pointer_create(&builtin_font->id, &idptr); - RNA_property_pointer_set(&pprop.ptr, pprop.prop, idptr); + RNA_property_pointer_set(NULL, &pprop.ptr, pprop.prop, idptr); RNA_property_update(C, &pprop.ptr, pprop.prop); return OPERATOR_FINISHED; diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index 0e4b07f4b48..f1724d92402 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -2772,7 +2772,7 @@ bool ui_but_string_set(bContext *C, uiBut *but, const char *str) } else if (type == PROP_POINTER) { if (str[0] == '\0') { - RNA_property_pointer_set(&but->rnapoin, but->rnaprop, PointerRNA_NULL); + RNA_property_pointer_set(NULL, &but->rnapoin, but->rnaprop, PointerRNA_NULL); return true; } else { @@ -2788,14 +2788,14 @@ bool ui_but_string_set(bContext *C, uiBut *but, const char *str) * Fact remains, using editstr as main 'reference' over whole search button thingy * is utterly weak and should be redesigned imho, but that's not a simple task. */ if (prop && RNA_property_collection_lookup_string(&ptr, prop, str, &rptr)) { - RNA_property_pointer_set(&but->rnapoin, but->rnaprop, rptr); + RNA_property_pointer_set(NULL, &but->rnapoin, but->rnaprop, rptr); } else if (but->func_arg2 != NULL) { RNA_pointer_create(NULL, RNA_property_pointer_type(&but->rnapoin, but->rnaprop), but->func_arg2, &rptr); - RNA_property_pointer_set(&but->rnapoin, but->rnaprop, rptr); + RNA_property_pointer_set(NULL, &but->rnapoin, but->rnaprop, rptr); } return true; diff --git a/source/blender/editors/interface/interface_eyedropper_datablock.c b/source/blender/editors/interface/interface_eyedropper_datablock.c index 1d90139eade..4a2d59c05de 100644 --- a/source/blender/editors/interface/interface_eyedropper_datablock.c +++ b/source/blender/editors/interface/interface_eyedropper_datablock.c @@ -207,7 +207,7 @@ static bool datadropper_id_set(bContext *C, DataDropper *ddr, ID *id) RNA_id_pointer_create(id, &ptr_value); - RNA_property_pointer_set(&ddr->ptr, ddr->prop, ptr_value); + RNA_property_pointer_set(NULL, &ddr->ptr, ddr->prop, ptr_value); RNA_property_update(C, &ddr->ptr, ddr->prop); diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index e4adf757c80..a3b438ece42 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -1744,7 +1744,7 @@ static void ui_selectcontext_apply(bContext *C, } else if (rna_type == PROP_POINTER) { const PointerRNA other_value = delta.p; - RNA_property_pointer_set(&lptr, lprop, other_value); + RNA_property_pointer_set(NULL, &lptr, lprop, other_value); } RNA_property_update(C, &lptr, prop); diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index 9e91505f5e8..3dbfd3d2f6a 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -298,7 +298,7 @@ static void template_ID_set_property_cb(bContext *C, void *arg_template, void *i PointerRNA idptr; RNA_id_pointer_create(item, &idptr); - RNA_property_pointer_set(&template_ui->ptr, template_ui->prop, idptr); + RNA_property_pointer_set(NULL, &template_ui->ptr, template_ui->prop, idptr); RNA_property_update(C, &template_ui->ptr, template_ui->prop); } } @@ -489,7 +489,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) break; case UI_ID_DELETE: memset(&idptr, 0, sizeof(idptr)); - RNA_property_pointer_set(&template_ui->ptr, template_ui->prop, idptr); + RNA_property_pointer_set(NULL, &template_ui->ptr, template_ui->prop, idptr); RNA_property_update(C, &template_ui->ptr, template_ui->prop); if (id && CTX_wm_window(C)->eventstate->shift) { @@ -532,7 +532,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) idptr = RNA_property_pointer_get(&template_ui->ptr, template_ui->prop); } } - RNA_property_pointer_set(&template_ui->ptr, template_ui->prop, idptr); + RNA_property_pointer_set(NULL, &template_ui->ptr, template_ui->prop, idptr); RNA_property_update(C, &template_ui->ptr, template_ui->prop); } break; @@ -541,7 +541,7 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event) BKE_override_static_free(&id->override_static); /* reassign to get get proper updates/notifiers */ idptr = RNA_property_pointer_get(&template_ui->ptr, template_ui->prop); - RNA_property_pointer_set(&template_ui->ptr, template_ui->prop, idptr); + RNA_property_pointer_set(NULL, &template_ui->ptr, template_ui->prop, idptr); RNA_property_update(C, &template_ui->ptr, template_ui->prop); } break; @@ -1455,7 +1455,7 @@ static void template_search_handle_cb(bContext *C, void *arg_template, void *ite PointerRNA item_ptr; RNA_pointer_create(NULL, type, item, &item_ptr); - RNA_property_pointer_set(&coll_search->target_ptr, coll_search->target_prop, item_ptr); + RNA_property_pointer_set(NULL, &coll_search->target_ptr, coll_search->target_prop, item_ptr); RNA_property_update(C, &coll_search->target_ptr, coll_search->target_prop); } diff --git a/source/blender/editors/io/io_cache.c b/source/blender/editors/io/io_cache.c index 3dd3b20bda3..e2b3b6aa8c6 100644 --- a/source/blender/editors/io/io_cache.c +++ b/source/blender/editors/io/io_cache.c @@ -108,7 +108,7 @@ static int cachefile_open_exec(bContext *C, wmOperator *op) PointerRNA idptr; RNA_id_pointer_create(&cache_file->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_pointer_set(NULL, &pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); } diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 3186f011c6a..8819b7a541d 100644 --- a/source/blender/editors/render/render_shading.c +++ b/source/blender/editors/render/render_shading.c @@ -595,7 +595,7 @@ static int new_material_exec(bContext *C, wmOperator *UNUSED(op)) id_us_min(&ma->id); RNA_id_pointer_create(&ma->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } @@ -644,7 +644,7 @@ static int new_texture_exec(bContext *C, wmOperator *UNUSED(op)) id_us_min(&tex->id); RNA_id_pointer_create(&tex->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } @@ -695,7 +695,7 @@ static int new_world_exec(bContext *C, wmOperator *UNUSED(op)) id_us_min(&wo->id); RNA_id_pointer_create(&wo->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c index 25c05e2d1d0..692681cecb7 100644 --- a/source/blender/editors/sound/sound_ops.c +++ b/source/blender/editors/sound/sound_ops.c @@ -136,7 +136,7 @@ static int sound_open_exec(bContext *C, wmOperator *op) id_us_min(&sound->id); RNA_id_pointer_create(&sound->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_pointer_set(NULL, &pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); } diff --git a/source/blender/editors/space_action/action_data.c b/source/blender/editors/space_action/action_data.c index db504272d2f..d3e5c011579 100644 --- a/source/blender/editors/space_action/action_data.c +++ b/source/blender/editors/space_action/action_data.c @@ -155,7 +155,7 @@ static void actedit_change_action(bContext *C, bAction *act) RNA_id_pointer_create((ID *)act, &idptr); /* set the new pointer, and force a refresh */ - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } @@ -261,7 +261,7 @@ static int action_new_exec(bContext *C, wmOperator *UNUSED(op)) * NOTE: we can't use actedit_change_action, as this function is also called from the NLA */ RNA_id_pointer_create(&action->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } @@ -619,7 +619,7 @@ void ED_animedit_unlink_action( prop = RNA_struct_find_property(&ptr, "action"); /* clear... */ - RNA_property_pointer_set(&ptr, prop, PointerRNA_NULL); + RNA_property_pointer_set(NULL, &ptr, prop, PointerRNA_NULL); RNA_property_update(C, &ptr, prop); } } diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index a6b1db1aa83..e5698ede59a 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -245,7 +245,7 @@ static int open_exec(bContext *C, wmOperator *op) id_us_min(&clip->id); RNA_id_pointer_create(&clip->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_pointer_set(NULL, &pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); } else if (sc) { diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c index a25ba6fbd9b..b49fd92beb3 100644 --- a/source/blender/editors/space_image/image_ops.c +++ b/source/blender/editors/space_image/image_ops.c @@ -1339,7 +1339,7 @@ static int image_open_exec(bContext *C, wmOperator *op) PointerRNA imaptr; RNA_id_pointer_create(&ima->id, &imaptr); - RNA_property_pointer_set(&iod->pprop.ptr, iod->pprop.prop, imaptr); + RNA_property_pointer_set(NULL, &iod->pprop.ptr, iod->pprop.prop, imaptr); RNA_property_update(C, &iod->pprop.ptr, iod->pprop.prop); } @@ -2426,7 +2426,7 @@ static int image_new_exec(bContext *C, wmOperator *op) PointerRNA imaptr; RNA_id_pointer_create(&ima->id, &imaptr); - RNA_property_pointer_set(&data->pprop.ptr, data->pprop.prop, imaptr); + RNA_property_pointer_set(NULL, &data->pprop.ptr, data->pprop.prop, imaptr); RNA_property_update(C, &data->pprop.ptr, data->pprop.prop); } else if (sima) { diff --git a/source/blender/editors/space_node/node_add.c b/source/blender/editors/space_node/node_add.c index 714ed707e18..e677c649fb4 100644 --- a/source/blender/editors/space_node/node_add.c +++ b/source/blender/editors/space_node/node_add.c @@ -521,7 +521,7 @@ static int new_node_tree_exec(bContext *C, wmOperator *op) id_us_min(&ntree->id); RNA_id_pointer_create(&ntree->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } else if (snode) { diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c index a3a438c3220..a9dd2a59d1e 100644 --- a/source/blender/editors/space_text/text_ops.c +++ b/source/blender/editors/space_text/text_ops.c @@ -247,7 +247,7 @@ static int text_new_exec(bContext *C, wmOperator *UNUSED(op)) if (prop) { RNA_id_pointer_create(&text->id, &idptr); - RNA_property_pointer_set(&ptr, prop, idptr); + RNA_property_pointer_set(NULL, &ptr, prop, idptr); RNA_property_update(C, &ptr, prop); } else if (st) { @@ -326,7 +326,7 @@ static int text_open_exec(bContext *C, wmOperator *op) if (pprop->prop) { RNA_id_pointer_create(&text->id, &idptr); - RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr); + RNA_property_pointer_set(NULL, &pprop->ptr, pprop->prop, idptr); RNA_property_update(C, &pprop->ptr, pprop->prop); } else if (st) { diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index a7b111d49da..5aee34df6f7 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -1031,7 +1031,10 @@ int RNA_property_enum_step( const struct bContext *C, PointerRNA *ptr, PropertyRNA *prop, int from_value, int step); PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop); -void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value); +void RNA_property_pointer_set(struct ReportList *reports, + PointerRNA *ptr, + PropertyRNA *prop, + PointerRNA ptr_value); PointerRNA RNA_property_pointer_get_default(PointerRNA *ptr, PropertyRNA *prop); void RNA_property_collection_begin(PointerRNA *ptr, diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 83c115aa751..a77402cb88d 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1033,10 +1033,10 @@ static char *rna_def_property_set_func( break; } case PROP_POINTER: { - fprintf(f, "void %s(PointerRNA *ptr, PointerRNA value)\n", func); + fprintf(f, "void %s(struct ReportList *reports, PointerRNA *ptr, PointerRNA value)\n", func); fprintf(f, "{\n"); if (manualfunc) { - fprintf(f, " %s(ptr, value);\n", manualfunc); + fprintf(f, " %s(reports, ptr, value);\n", manualfunc); } else { rna_print_data_get(f, dp); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index a12951d9796..b56a031f9df 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -3733,24 +3733,29 @@ PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop) } } -void RNA_property_pointer_set(PointerRNA *ptr, PropertyRNA *prop, PointerRNA ptr_value) +void RNA_property_pointer_set(ReportList *reports, + PointerRNA *ptr, + PropertyRNA *prop, + PointerRNA ptr_value) { PointerPropertyRNA *pprop = (PointerPropertyRNA *)prop; BLI_assert(RNA_property_type(prop) == PROP_POINTER); /* Check types */ if (ptr_value.type != NULL && !RNA_struct_is_a(ptr_value.type, pprop->type)) { - printf("%s: expected %s type, not %s.\n", - __func__, - pprop->type->identifier, - ptr_value.type->identifier); + BKE_reportf(reports, + RPT_ERROR, + "%s: expected %s type, not %s.\n", + __func__, + pprop->type->identifier, + ptr_value.type->identifier); return; } /* RNA */ if (pprop->set && !((prop->flag & PROP_NEVER_NULL) && ptr_value.data == NULL) && !((prop->flag & PROP_ID_SELF_CHECK) && ptr->id.data == ptr_value.id.data)) { - pprop->set(ptr, ptr_value); + pprop->set(reports, ptr, ptr_value); } /* IDProperty */ else if (prop->flag & PROP_EDITABLE) { @@ -6422,7 +6427,7 @@ void RNA_pointer_set(PointerRNA *ptr, const char *name, PointerRNA ptr_value) PropertyRNA *prop = RNA_struct_find_property(ptr, name); if (prop) { - RNA_property_pointer_set(ptr, prop, ptr_value); + RNA_property_pointer_set(NULL, ptr, prop, ptr_value); } else { printf("%s: %s.%s not found.\n", __func__, ptr->type->identifier, name); @@ -7971,7 +7976,7 @@ bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index) case PROP_POINTER: { PointerRNA value = RNA_property_pointer_get_default(ptr, prop); - RNA_property_pointer_set(ptr, prop, value); + RNA_property_pointer_set(NULL, ptr, prop, value); return true; } diff --git a/source/blender/makesrna/intern/rna_action.c b/source/blender/makesrna/intern/rna_action.c index bb3585df24e..e99a1ffe2be 100644 --- a/source/blender/makesrna/intern/rna_action.c +++ b/source/blender/makesrna/intern/rna_action.c @@ -214,7 +214,9 @@ static PointerRNA rna_Action_active_pose_marker_get(PointerRNA *ptr) ptr, &RNA_TimelineMarker, BLI_findlink(&act->markers, act->active_marker - 1)); } -static void rna_Action_active_pose_marker_set(PointerRNA *ptr, PointerRNA value) +static void rna_Action_active_pose_marker_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bAction *act = (bAction *)ptr->data; act->active_marker = BLI_findindex(&act->markers, value.data) + 1; diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index 6a5bae28cc1..ba7929521f9 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -151,7 +151,9 @@ static int rna_AnimData_action_editable(PointerRNA *ptr, const char **UNUSED(r_i return PROP_EDITABLE; } -static void rna_AnimData_action_set(PointerRNA *ptr, PointerRNA value) +static void rna_AnimData_action_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { ID *ownerId = (ID *)ptr->id.data; @@ -461,7 +463,9 @@ static PointerRNA rna_KeyingSet_active_ksPath_get(PointerRNA *ptr) ptr, &RNA_KeyingSetPath, BLI_findlink(&ks->paths, ks->active_path - 1)); } -static void rna_KeyingSet_active_ksPath_set(PointerRNA *ptr, PointerRNA value) +static void rna_KeyingSet_active_ksPath_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { KeyingSet *ks = (KeyingSet *)ptr->data; KS_Path *ksp = (KS_Path *)value.data; @@ -612,7 +616,9 @@ static PointerRNA rna_NlaTrack_active_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_NlaTrack, track); } -static void rna_NlaTrack_active_set(PointerRNA *ptr, PointerRNA value) +static void rna_NlaTrack_active_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { AnimData *adt = (AnimData *)ptr->data; NlaTrack *track = (NlaTrack *)value.data; diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c index 0eec5973ab0..3aef22f5f7f 100644 --- a/source/blender/makesrna/intern/rna_armature.c +++ b/source/blender/makesrna/intern/rna_armature.c @@ -67,7 +67,9 @@ static void rna_Armature_dependency_update(Main *bmain, Scene *UNUSED(scene), Po WM_main_add_notifier(NC_GEOM | ND_DATA, id); } -static void rna_Armature_act_bone_set(PointerRNA *ptr, PointerRNA value) +static void rna_Armature_act_bone_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bArmature *arm = (bArmature *)ptr->data; @@ -89,7 +91,9 @@ static void rna_Armature_act_bone_set(PointerRNA *ptr, PointerRNA value) } } -static void rna_Armature_act_edit_bone_set(PointerRNA *ptr, PointerRNA value) +static void rna_Armature_act_edit_bone_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bArmature *arm = (bArmature *)ptr->data; @@ -395,7 +399,9 @@ static PointerRNA rna_EditBone_parent_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_EditBone, data->parent); } -static void rna_EditBone_parent_set(PointerRNA *ptr, PointerRNA value) +static void rna_EditBone_parent_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { EditBone *ebone = (EditBone *)(ptr->data); EditBone *pbone, *parbone = (EditBone *)value.data; @@ -463,7 +469,9 @@ static PointerRNA rna_EditBone_bbone_prev_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_EditBone, data->bbone_prev); } -static void rna_EditBone_bbone_prev_set(PointerRNA *ptr, PointerRNA value) +static void rna_EditBone_bbone_prev_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { EditBone *ebone = (EditBone *)(ptr->data); EditBone *hbone = (EditBone *)value.data; @@ -474,7 +482,9 @@ static void rna_EditBone_bbone_prev_set(PointerRNA *ptr, PointerRNA value) } } -static void rna_Bone_bbone_prev_set(PointerRNA *ptr, PointerRNA value) +static void rna_Bone_bbone_prev_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Bone *bone = (Bone *)ptr->data; Bone *hbone = (Bone *)value.data; @@ -491,7 +501,9 @@ static PointerRNA rna_EditBone_bbone_next_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_EditBone, data->bbone_next); } -static void rna_EditBone_bbone_next_set(PointerRNA *ptr, PointerRNA value) +static void rna_EditBone_bbone_next_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { EditBone *ebone = (EditBone *)(ptr->data); EditBone *hbone = (EditBone *)value.data; @@ -502,7 +514,9 @@ static void rna_EditBone_bbone_next_set(PointerRNA *ptr, PointerRNA value) } } -static void rna_Bone_bbone_next_set(PointerRNA *ptr, PointerRNA value) +static void rna_Bone_bbone_next_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Bone *bone = (Bone *)ptr->data; Bone *hbone = (Bone *)value.data; diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c index 160634307f9..bab7075b75b 100644 --- a/source/blender/makesrna/intern/rna_cloth.c +++ b/source/blender/makesrna/intern/rna_cloth.c @@ -306,7 +306,9 @@ static PointerRNA rna_ClothSettings_rest_shape_key_get(PointerRNA *ptr) return rna_object_shapekey_index_get(ob->data, sim->shapekey_rest); } -static void rna_ClothSettings_rest_shape_key_set(PointerRNA *ptr, PointerRNA value) +static void rna_ClothSettings_rest_shape_key_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Object *ob = (Object *)ptr->id.data; ClothSimSettings *sim = (ClothSimSettings *)ptr->data; diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index 41ad94f6119..252dc40f3f5 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -351,7 +351,9 @@ static StructRNA *rna_ConstraintType_refine(struct PointerRNA *ptr) } } -static void rna_ConstraintTargetBone_target_set(PointerRNA *ptr, PointerRNA value) +static void rna_ConstraintTargetBone_target_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bConstraintTarget *tgt = (bConstraintTarget *)ptr->data; Object *ob = value.data; @@ -665,7 +667,9 @@ static bool rna_Constraint_cameraObject_poll(PointerRNA *ptr, PointerRNA value) return 0; } -static void rna_Constraint_followTrack_camera_set(PointerRNA *ptr, PointerRNA value) +static void rna_Constraint_followTrack_camera_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bConstraint *con = (bConstraint *)ptr->data; bFollowTrackConstraint *data = (bFollowTrackConstraint *)con->data; @@ -682,7 +686,9 @@ static void rna_Constraint_followTrack_camera_set(PointerRNA *ptr, PointerRNA va } } -static void rna_Constraint_followTrack_depthObject_set(PointerRNA *ptr, PointerRNA value) +static void rna_Constraint_followTrack_depthObject_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bConstraint *con = (bConstraint *)ptr->data; bFollowTrackConstraint *data = (bFollowTrackConstraint *)con->data; @@ -712,7 +718,9 @@ static bool rna_Constraint_followTrack_depthObject_poll(PointerRNA *ptr, Pointer return 0; } -static void rna_Constraint_objectSolver_camera_set(PointerRNA *ptr, PointerRNA value) +static void rna_Constraint_objectSolver_camera_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bConstraint *con = (bConstraint *)ptr->data; bObjectSolverConstraint *data = (bObjectSolverConstraint *)con->data; diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index 9c7ad60f378..111e8956414 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -438,7 +438,9 @@ static PointerRNA rna_Curve_bevelObject_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, NULL, NULL); } -static void rna_Curve_bevelObject_set(PointerRNA *ptr, PointerRNA value) +static void rna_Curve_bevelObject_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Curve *cu = (Curve *)ptr->id.data; Object *ob = (Object *)value.data; @@ -481,7 +483,9 @@ static PointerRNA rna_Curve_taperObject_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, NULL, NULL); } -static void rna_Curve_taperObject_set(PointerRNA *ptr, PointerRNA value) +static void rna_Curve_taperObject_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Curve *cu = (Curve *)ptr->id.data; Object *ob = (Object *)value.data; @@ -730,7 +734,9 @@ static PointerRNA rna_Curve_active_spline_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, NULL, NULL); } -static void rna_Curve_active_spline_set(PointerRNA *ptr, PointerRNA value) +static void rna_Curve_active_spline_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Curve *cu = (Curve *)ptr->data; Nurb *nu = value.data; diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index 2574fb14b56..1edcbf0774d 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -239,7 +239,9 @@ static void rna_DriverTarget_update_name(Main *bmain, Scene *scene, PointerRNA * /* ----------- */ /* note: this function exists only to avoid id refcounting */ -static void rna_DriverTarget_id_set(PointerRNA *ptr, PointerRNA value) +static void rna_DriverTarget_id_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { DriverTarget *dtar = (DriverTarget *)ptr->data; dtar->id = value.data; @@ -446,7 +448,9 @@ static void rna_FCurve_RnaPath_set(PointerRNA *ptr, const char *value) fcu->rna_path = NULL; } -static void rna_FCurve_group_set(PointerRNA *ptr, PointerRNA value) +static void rna_FCurve_group_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { ID *pid = (ID *)ptr->id.data; ID *vid = (ID *)value.id.data; @@ -566,7 +570,9 @@ static PointerRNA rna_FCurve_active_modifier_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_FModifier, fcm); } -static void rna_FCurve_active_modifier_set(PointerRNA *ptr, PointerRNA value) +static void rna_FCurve_active_modifier_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { FCurve *fcu = (FCurve *)ptr->data; set_active_fmodifier(&fcu->modifiers, (FModifier *)value.data); diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index 8d3bfdde995..c7071ee5155 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -281,7 +281,9 @@ static void set_parent(bGPDlayer *gpl, Object *par, const int type, const char * } /* set parent object and inverse matrix */ -static void rna_GPencilLayer_parent_set(PointerRNA *ptr, PointerRNA value) +static void rna_GPencilLayer_parent_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bGPDlayer *gpl = (bGPDlayer *)ptr->data; Object *par = (Object *)value.data; @@ -375,7 +377,9 @@ static PointerRNA rna_GPencil_active_layer_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, NULL, NULL); } -static void rna_GPencil_active_layer_set(PointerRNA *ptr, PointerRNA value) +static void rna_GPencil_active_layer_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bGPdata *gpd = ptr->id.data; diff --git a/source/blender/makesrna/intern/rna_gpencil_modifier.c b/source/blender/makesrna/intern/rna_gpencil_modifier.c index d1ae46a74f7..afefa66e2ae 100644 --- a/source/blender/makesrna/intern/rna_gpencil_modifier.c +++ b/source/blender/makesrna/intern/rna_gpencil_modifier.c @@ -296,7 +296,8 @@ static void greasepencil_modifier_object_set(Object *self, } # define RNA_GP_MOD_OBJECT_SET(_type, _prop, _obtype) \ - static void rna_##_type##GpencilModifier_##_prop##_set(PointerRNA *ptr, PointerRNA value) \ + static void rna_##_type##GpencilModifier_##_prop##_set( \ + struct ReportList *UNUSED(reports), PointerRNA *ptr, PointerRNA value) \ { \ _type##GpencilModifierData *tmd = (_type##GpencilModifierData *)ptr->data; \ greasepencil_modifier_object_set(ptr->id.data, &tmd->_prop, _obtype, value); \ @@ -308,7 +309,9 @@ RNA_GP_MOD_OBJECT_SET(Mirror, object, OB_EMPTY); # undef RNA_GP_MOD_OBJECT_SET -static void rna_HookGpencilModifier_object_set(PointerRNA *ptr, PointerRNA value) +static void rna_HookGpencilModifier_object_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { HookGpencilModifierData *hmd = ptr->data; Object *ob = (Object *)value.data; diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c index 83ec33286f4..40c8c7e1582 100644 --- a/source/blender/makesrna/intern/rna_image.c +++ b/source/blender/makesrna/intern/rna_image.c @@ -479,7 +479,9 @@ static PointerRNA rna_render_slots_active_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_RenderSlot, render_slot); } -static void rna_render_slots_active_set(PointerRNA *ptr, PointerRNA value) +static void rna_render_slots_active_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Image *image = (Image *)ptr->id.data; if (value.id.data == image) { diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index 938db92755c..0f71eec5240 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -277,7 +277,9 @@ int rna_object_shapekey_index_set(struct ID *id, PointerRNA value, int current); /* ViewLayer related functions defined in rna_scene.c but required in rna_layer.c */ void rna_def_freestyle_settings(struct BlenderRNA *brna); struct PointerRNA rna_FreestyleLineSet_linestyle_get(struct PointerRNA *ptr); -void rna_FreestyleLineSet_linestyle_set(struct PointerRNA *ptr, struct PointerRNA value); +void rna_FreestyleLineSet_linestyle_set(struct ReportList *reports, + struct PointerRNA *ptr, + struct PointerRNA value); struct FreestyleLineSet *rna_FreestyleSettings_lineset_add(struct ID *id, struct FreestyleSettings *config, struct Main *bmain, diff --git a/source/blender/makesrna/intern/rna_internal_types.h b/source/blender/makesrna/intern/rna_internal_types.h index 92c895bd854..14d850be012 100644 --- a/source/blender/makesrna/intern/rna_internal_types.h +++ b/source/blender/makesrna/intern/rna_internal_types.h @@ -37,6 +37,7 @@ struct IDProperty; struct Main; struct PointerRNA; struct PropertyRNA; +struct ReportList; struct Scene; struct StructRNA; struct bContext; @@ -85,7 +86,9 @@ typedef const EnumPropertyItem *(*PropEnumItemFunc)(struct bContext *C, bool *r_free); typedef PointerRNA (*PropPointerGetFunc)(struct PointerRNA *ptr); typedef StructRNA *(*PropPointerTypeFunc)(struct PointerRNA *ptr); -typedef void (*PropPointerSetFunc)(struct PointerRNA *ptr, const PointerRNA value); +typedef void (*PropPointerSetFunc)(struct ReportList *reports, + struct PointerRNA *ptr, + const PointerRNA value); typedef bool (*PropPointerPollFunc)(struct PointerRNA *ptr, const PointerRNA value); typedef bool (*PropPointerPollFuncPy)(struct PointerRNA *ptr, const PointerRNA value, diff --git a/source/blender/makesrna/intern/rna_key.c b/source/blender/makesrna/intern/rna_key.c index 1985099e060..65233d5ccc1 100644 --- a/source/blender/makesrna/intern/rna_key.c +++ b/source/blender/makesrna/intern/rna_key.c @@ -316,7 +316,9 @@ static PointerRNA rna_ShapeKey_relative_key_get(PointerRNA *ptr) return rna_object_shapekey_index_get(ptr->id.data, kb->relative); } -static void rna_ShapeKey_relative_key_set(PointerRNA *ptr, PointerRNA value) +static void rna_ShapeKey_relative_key_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { KeyBlock *kb = (KeyBlock *)ptr->data; diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index c8af49c47ff..0f8a2ee56ac 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -67,7 +67,9 @@ static PointerRNA rna_ViewLayer_active_layer_collection_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_LayerCollection, lc); } -static void rna_ViewLayer_active_layer_collection_set(PointerRNA *ptr, PointerRNA value) +static void rna_ViewLayer_active_layer_collection_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { ViewLayer *view_layer = (ViewLayer *)ptr->data; LayerCollection *lc = (LayerCollection *)value.data; @@ -84,7 +86,9 @@ static PointerRNA rna_LayerObjects_active_object_get(PointerRNA *ptr) ptr, &RNA_Object, view_layer->basact ? view_layer->basact->object : NULL); } -static void rna_LayerObjects_active_object_set(PointerRNA *ptr, PointerRNA value) +static void rna_LayerObjects_active_object_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { ViewLayer *view_layer = (ViewLayer *)ptr->data; if (value.data) diff --git a/source/blender/makesrna/intern/rna_linestyle.c b/source/blender/makesrna/intern/rna_linestyle.c index 3a6f283e1dc..b98b21a7722 100644 --- a/source/blender/makesrna/intern/rna_linestyle.c +++ b/source/blender/makesrna/intern/rna_linestyle.c @@ -356,7 +356,9 @@ static PointerRNA rna_LineStyle_active_texture_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_Texture, tex); } -static void rna_LineStyle_active_texture_set(PointerRNA *ptr, PointerRNA value) +static void rna_LineStyle_active_texture_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { FreestyleLineStyle *linestyle = (FreestyleLineStyle *)ptr->id.data; diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c index abcaccd7b6b..bd06cfc1936 100644 --- a/source/blender/makesrna/intern/rna_main_api.c +++ b/source/blender/makesrna/intern/rna_main_api.c @@ -208,6 +208,13 @@ static void rna_Main_scenes_remove( static Object *rna_Main_objects_new(Main *bmain, ReportList *reports, const char *name, ID *data) { + if (data != NULL && (data->tag & LIB_TAG_NO_MAIN)) { + BKE_report(reports, + RPT_ERROR, + "Can not create object in main database with an evaluated data data-block"); + return NULL; + } + char safe_name[MAX_ID_NAME - 2]; rna_idname_validate(name, safe_name); diff --git a/source/blender/makesrna/intern/rna_mask.c b/source/blender/makesrna/intern/rna_mask.c index 8b27c69604e..563372dd4cf 100644 --- a/source/blender/makesrna/intern/rna_mask.c +++ b/source/blender/makesrna/intern/rna_mask.c @@ -116,7 +116,9 @@ static void rna_Mask_update_parent(Main *bmain, Scene *scene, PointerRNA *ptr) } /* note: this function exists only to avoid id refcounting */ -static void rna_MaskParent_id_set(PointerRNA *ptr, PointerRNA value) +static void rna_MaskParent_id_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MaskParent *mpar = (MaskParent *)ptr->data; @@ -191,7 +193,9 @@ static PointerRNA rna_Mask_layer_active_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MaskLayer, masklay); } -static void rna_Mask_layer_active_set(PointerRNA *ptr, PointerRNA value) +static void rna_Mask_layer_active_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Mask *mask = (Mask *)ptr->id.data; MaskLayer *masklay = (MaskLayer *)value.data; @@ -226,7 +230,9 @@ static PointerRNA rna_MaskLayer_active_spline_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MaskSpline, masklay->act_spline); } -static void rna_MaskLayer_active_spline_set(PointerRNA *ptr, PointerRNA value) +static void rna_MaskLayer_active_spline_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MaskLayer *masklay = (MaskLayer *)ptr->data; MaskSpline *spline = (MaskSpline *)value.data; @@ -245,7 +251,9 @@ static PointerRNA rna_MaskLayer_active_spline_point_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MaskSplinePoint, masklay->act_point); } -static void rna_MaskLayer_active_spline_point_set(PointerRNA *ptr, PointerRNA value) +static void rna_MaskLayer_active_spline_point_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MaskLayer *masklay = (MaskLayer *)ptr->data; MaskSpline *spline; diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index edfdbe293a3..93dc7febd32 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -330,7 +330,9 @@ static int rna_GpencilColorData_is_fill_visible_get(PointerRNA *ptr) return ((pcolor->fill_rgba[3] > GPENCIL_ALPHA_OPACITY_THRESH) || (pcolor->fill_style > 0)); } -static void rna_GpencilColorData_stroke_image_set(PointerRNA *ptr, PointerRNA value) +static void rna_GpencilColorData_stroke_image_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MaterialGPencilStyle *pcolor = ptr->data; ID *id = value.data; @@ -339,7 +341,9 @@ static void rna_GpencilColorData_stroke_image_set(PointerRNA *ptr, PointerRNA va pcolor->sima = (struct Image *)id; } -static void rna_GpencilColorData_fill_image_set(PointerRNA *ptr, PointerRNA value) +static void rna_GpencilColorData_fill_image_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MaterialGPencilStyle *pcolor = (MaterialGPencilStyle *)ptr->data; ID *id = value.data; diff --git a/source/blender/makesrna/intern/rna_mesh_utils.h b/source/blender/makesrna/intern/rna_mesh_utils.h index ff148408728..2da35b55bd5 100644 --- a/source/blender/makesrna/intern/rna_mesh_utils.h +++ b/source/blender/makesrna/intern/rna_mesh_utils.h @@ -83,7 +83,8 @@ return rna_pointer_inherit_refine(ptr, &RNA_##layer_rna_type, layer); \ } \ \ - static void rna_Mesh_##collection_name##_##active_type##_set(PointerRNA *ptr, PointerRNA value) \ + static void rna_Mesh_##collection_name##_##active_type##_set( \ + struct ReportList *UNUSED(reports), PointerRNA *ptr, PointerRNA value) \ { \ Mesh *me = rna_mesh(ptr); \ CustomData *data = rna_mesh_##customdata_type(ptr); \ diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index a3abf0237c8..28d02c6de00 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -719,7 +719,8 @@ static void modifier_object_set(Object *self, Object **ob_p, int type, PointerRN } # define RNA_MOD_OBJECT_SET(_type, _prop, _obtype) \ - static void rna_##_type##Modifier_##_prop##_set(PointerRNA *ptr, PointerRNA value) \ + static void rna_##_type##Modifier_##_prop##_set( \ + struct ReportList *UNUSED(reports), PointerRNA *ptr, PointerRNA value) \ { \ _type##ModifierData *tmd = (_type##ModifierData *)ptr->data; \ modifier_object_set(ptr->id.data, &tmd->_prop, _obtype, value); \ @@ -741,7 +742,9 @@ RNA_MOD_OBJECT_SET(Shrinkwrap, target, OB_MESH); RNA_MOD_OBJECT_SET(Shrinkwrap, auxTarget, OB_MESH); RNA_MOD_OBJECT_SET(SurfaceDeform, target, OB_MESH); -static void rna_HookModifier_object_set(PointerRNA *ptr, PointerRNA value) +static void rna_HookModifier_object_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Object *owner = (Object *)ptr->id.data; HookModifierData *hmd = ptr->data; @@ -824,7 +827,9 @@ static PointerRNA rna_UVProjector_object_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_Object, *ob); } -static void rna_UVProjector_object_set(PointerRNA *ptr, PointerRNA value) +static void rna_UVProjector_object_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Object **ob_p = (Object **)ptr->data; Object *ob = (Object *)value.data; @@ -1396,7 +1401,8 @@ static PointerRNA rna_ParticleInstanceModifier_particle_system_get(PointerRNA *p return rptr; } -static void rna_ParticleInstanceModifier_particle_system_set(PointerRNA *ptr, +static void rna_ParticleInstanceModifier_particle_system_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, const PointerRNA value) { ParticleInstanceModifierData *psmd = ptr->data; diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 4906f8ac28e..17072a61bcd 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -814,7 +814,9 @@ static PointerRNA rna_NodeTree_active_node_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_Node, node); } -static void rna_NodeTree_active_node_set(PointerRNA *ptr, const PointerRNA value) +static void rna_NodeTree_active_node_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + const PointerRNA value) { bNodeTree *ntree = (bNodeTree *)ptr->data; bNode *node = (bNode *)value.data; @@ -1608,7 +1610,9 @@ static IDProperty *rna_Node_idprops(PointerRNA *ptr, bool create) return node->prop; } -static void rna_Node_parent_set(PointerRNA *ptr, PointerRNA value) +static void rna_Node_parent_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bNode *node = ptr->data; bNode *parent = value.data; @@ -2683,7 +2687,9 @@ static void rna_NodeGroup_update(Main *bmain, Scene *UNUSED(scene), PointerRNA * ED_node_tag_update_nodetree(bmain, ntree, node); } -static void rna_NodeGroup_node_tree_set(PointerRNA *ptr, const PointerRNA value) +static void rna_NodeGroup_node_tree_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + const PointerRNA value) { bNodeTree *ntree = ptr->id.data; bNode *node = ptr->data; @@ -2791,7 +2797,9 @@ static void rna_Matte_t2_set(PointerRNA *ptr, float value) chroma->t2 = value; } -static void rna_Node_scene_set(PointerRNA *ptr, PointerRNA value) +static void rna_Node_scene_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bNode *node = (bNode *)ptr->data; @@ -3345,7 +3353,9 @@ static PointerRNA rna_ShaderNodePointDensity_psys_get(PointerRNA *ptr) return value; } -static void rna_ShaderNodePointDensity_psys_set(PointerRNA *ptr, PointerRNA value) +static void rna_ShaderNodePointDensity_psys_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bNode *node = ptr->data; NodeShaderTexPointDensity *shader_point_density = node->storage; 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); diff --git a/source/blender/makesrna/intern/rna_palette.c b/source/blender/makesrna/intern/rna_palette.c index 7b35092dea4..cd6ed9bc7e4 100644 --- a/source/blender/makesrna/intern/rna_palette.c +++ b/source/blender/makesrna/intern/rna_palette.c @@ -74,7 +74,9 @@ static PointerRNA rna_Palette_active_color_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, NULL, NULL); } -static void rna_Palette_active_color_set(PointerRNA *ptr, PointerRNA value) +static void rna_Palette_active_color_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Palette *palette = ptr->data; PaletteColor *color = value.data; diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index 8c3d16f9c8c..9ef5bcd4fd1 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -792,7 +792,9 @@ static PointerRNA rna_particle_settings_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_ParticleSettings, part); } -static void rna_particle_settings_set(PointerRNA *ptr, PointerRNA value) +static void rna_particle_settings_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Object *ob = ptr->id.data; ParticleSystem *psys = (ParticleSystem *)ptr->data; @@ -1318,7 +1320,9 @@ static PointerRNA rna_ParticleSettings_active_texture_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_Texture, tex); } -static void rna_ParticleSettings_active_texture_set(PointerRNA *ptr, PointerRNA value) +static void rna_ParticleSettings_active_texture_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { ParticleSettings *part = (ParticleSettings *)ptr->data; diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c index 2f7f8c70760..7b91248feac 100644 --- a/source/blender/makesrna/intern/rna_pose.c +++ b/source/blender/makesrna/intern/rna_pose.c @@ -373,7 +373,9 @@ static void rna_Itasc_update_rebuild(Main *bmain, Scene *scene, PointerRNA *ptr) rna_Itasc_update(bmain, scene, ptr); } -static void rna_PoseChannel_bone_custom_set(PointerRNA *ptr, PointerRNA value) +static void rna_PoseChannel_bone_custom_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bPoseChannel *pchan = (bPoseChannel *)ptr->data; @@ -402,7 +404,9 @@ static PointerRNA rna_PoseChannel_bone_group_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_BoneGroup, grp); } -static void rna_PoseChannel_bone_group_set(PointerRNA *ptr, PointerRNA value) +static void rna_PoseChannel_bone_group_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Object *ob = (Object *)ptr->id.data; bPose *pose = (ob) ? ob->pose : NULL; @@ -443,7 +447,9 @@ static PointerRNA rna_Pose_active_bone_group_get(PointerRNA *ptr) ptr, &RNA_BoneGroup, BLI_findlink(&pose->agroups, pose->active_group - 1)); } -static void rna_Pose_active_bone_group_set(PointerRNA *ptr, PointerRNA value) +static void rna_Pose_active_bone_group_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bPose *pose = (bPose *)ptr->data; pose->active_group = BLI_findindex(&pose->agroups, value.data) + 1; @@ -532,7 +538,9 @@ static PointerRNA rna_PoseChannel_active_constraint_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_Constraint, con); } -static void rna_PoseChannel_active_constraint_set(PointerRNA *ptr, PointerRNA value) +static void rna_PoseChannel_active_constraint_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bPoseChannel *pchan = (bPoseChannel *)ptr->data; BKE_constraints_active_set(&pchan->constraints, (bConstraint *)value.data); @@ -770,7 +778,9 @@ static bPoseChannel *rna_PoseChannel_ensure_own_pchan(Object *ob, return ref_pchan; } -static void rna_PoseChannel_custom_shape_transform_set(PointerRNA *ptr, PointerRNA value) +static void rna_PoseChannel_custom_shape_transform_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { bPoseChannel *pchan = (bPoseChannel *)ptr->data; Object *ob = (Object *)ptr->id.data; diff --git a/source/blender/makesrna/intern/rna_rna.c b/source/blender/makesrna/intern/rna_rna.c index 032a1f86fc0..c5eff47c3aa 100644 --- a/source/blender/makesrna/intern/rna_rna.c +++ b/source/blender/makesrna/intern/rna_rna.c @@ -2373,7 +2373,7 @@ bool rna_property_override_apply_default(Main *UNUSED(bmain), switch (override_op) { case IDOVERRIDESTATIC_OP_REPLACE: - RNA_property_pointer_set(ptr_dst, prop_dst, value); + RNA_property_pointer_set(NULL, ptr_dst, prop_dst, value); break; default: BLI_assert(0 && "Unsupported RNA override operation on pointer"); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 5733b31e02c..4584cadb51d 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -772,7 +772,9 @@ static PointerRNA rna_Scene_objects_get(CollectionPropertyIterator *iter) /* End of read-only Iterator of all the scene objects. */ -static void rna_Scene_set_set(PointerRNA *ptr, PointerRNA value) +static void rna_Scene_set_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Scene *scene = (Scene *)ptr->data; Scene *set = (Scene *)value.data; @@ -969,7 +971,9 @@ static PointerRNA rna_Scene_active_keying_set_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_KeyingSet, ANIM_scene_get_active_keyingset(scene)); } -static void rna_Scene_active_keying_set_set(PointerRNA *ptr, PointerRNA value) +static void rna_Scene_active_keying_set_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { Scene *scene = (Scene *)ptr->data; KeyingSet *ks = (KeyingSet *)value.data; @@ -1435,7 +1439,9 @@ static PointerRNA rna_RenderSettings_active_view_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_SceneRenderView, srv); } -static void rna_RenderSettings_active_view_set(PointerRNA *ptr, PointerRNA value) +static void rna_RenderSettings_active_view_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { RenderData *rd = (RenderData *)ptr->data; SceneRenderView *srv = (SceneRenderView *)value.data; @@ -2040,7 +2046,9 @@ PointerRNA rna_FreestyleLineSet_linestyle_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_FreestyleLineStyle, lineset->linestyle); } -void rna_FreestyleLineSet_linestyle_set(PointerRNA *ptr, PointerRNA value) +void rna_FreestyleLineSet_linestyle_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { FreestyleLineSet *lineset = (FreestyleLineSet *)ptr->data; diff --git a/source/blender/makesrna/intern/rna_sequencer.c b/source/blender/makesrna/intern/rna_sequencer.c index 2af06fc4684..687ba96abc2 100644 --- a/source/blender/makesrna/intern/rna_sequencer.c +++ b/source/blender/makesrna/intern/rna_sequencer.c @@ -465,7 +465,9 @@ static void rna_SequenceCrop_update(Main *UNUSED(bmain), Scene *UNUSED(scene), P BKE_sequence_invalidate_cache(scene, seq); } -static void rna_Sequence_text_font_set(PointerRNA *ptr, PointerRNA ptr_value) +static void rna_Sequence_text_font_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA ptr_value) { Sequence *seq = ptr->data; TextVars *data = seq->effectdata; diff --git a/source/blender/makesrna/intern/rna_shader_fx.c b/source/blender/makesrna/intern/rna_shader_fx.c index 06c968534cc..8696023fbe6 100644 --- a/source/blender/makesrna/intern/rna_shader_fx.c +++ b/source/blender/makesrna/intern/rna_shader_fx.c @@ -185,7 +185,8 @@ static void shaderfx_object_set(Object *self, Object **ob_p, int type, PointerRN } # define RNA_FX_OBJECT_SET(_type, _prop, _obtype) \ - static void rna_##_type##ShaderFx_##_prop##_set(PointerRNA *ptr, PointerRNA value) \ + static void rna_##_type##ShaderFx_##_prop##_set( \ + struct ReportList *UNUSED(reports), PointerRNA *ptr, PointerRNA value) \ { \ _type##ShaderFxData *tmd = (_type##ShaderFxData *)ptr->data; \ shaderfx_object_set(ptr->id.data, &tmd->_prop, _obtype, value); \ diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 6163084ce8d..0611cca7652 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -1329,7 +1329,9 @@ static bool rna_SpaceImageEditor_show_maskedit_get(PointerRNA *ptr) return ED_space_image_check_show_maskedit(sima, view_layer); } -static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceImageEditor_image_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceImage *sima = (SpaceImage *)(ptr->data); bScreen *sc = (bScreen *)ptr->id.data; @@ -1341,7 +1343,9 @@ static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value) ED_space_image_set(G_MAIN, sima, obedit, (Image *)value.data, false); } -static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceImageEditor_mask_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceImage *sima = (SpaceImage *)(ptr->data); @@ -1507,7 +1511,9 @@ static void rna_SpaceTextEditor_word_wrap_set(PointerRNA *ptr, bool value) st->left = 0; } -static void rna_SpaceTextEditor_text_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceTextEditor_text_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceText *st = (SpaceText *)(ptr->data); @@ -1529,7 +1535,9 @@ static void rna_SpaceTextEditor_updateEdited(Main *UNUSED(bmain), /* Space Properties */ /* note: this function exists only to avoid id refcounting */ -static void rna_SpaceProperties_pin_id_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceProperties_pin_id_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceProperties *sbuts = (SpaceProperties *)(ptr->data); sbuts->pinid = value.data; @@ -1731,7 +1739,9 @@ static void rna_ConsoleLine_cursor_index_range( /* Space Dopesheet */ -static void rna_SpaceDopeSheetEditor_action_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceDopeSheetEditor_action_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceAction *saction = (SpaceAction *)(ptr->data); bAction *act = (bAction *)value.data; @@ -1953,7 +1963,9 @@ static void rna_Sequencer_view_type_update(Main *UNUSED(bmain), /* Space Node Editor */ -static void rna_SpaceNodeEditor_node_tree_set(PointerRNA *ptr, const PointerRNA value) +static void rna_SpaceNodeEditor_node_tree_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + const PointerRNA value) { SpaceNode *snode = (SpaceNode *)ptr->data; ED_node_tree_start(snode, (bNodeTree *)value.data, NULL, NULL); @@ -2064,7 +2076,9 @@ static void rna_SpaceNodeEditor_cursor_location_from_region(SpaceNode *snode, snode->cursor[1] /= UI_DPI_FAC; } -static void rna_SpaceClipEditor_clip_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceClipEditor_clip_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceClip *sc = (SpaceClip *)(ptr->data); bScreen *screen = (bScreen *)ptr->id.data; @@ -2072,7 +2086,9 @@ static void rna_SpaceClipEditor_clip_set(PointerRNA *ptr, PointerRNA value) ED_space_clip_set_clip(NULL, screen, sc, (MovieClip *)value.data); } -static void rna_SpaceClipEditor_mask_set(PointerRNA *ptr, PointerRNA value) +static void rna_SpaceClipEditor_mask_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { SpaceClip *sc = (SpaceClip *)(ptr->data); diff --git a/source/blender/makesrna/intern/rna_tracking.c b/source/blender/makesrna/intern/rna_tracking.c index 1fbdac9df38..9be277aa15f 100644 --- a/source/blender/makesrna/intern/rna_tracking.c +++ b/source/blender/makesrna/intern/rna_tracking.c @@ -144,7 +144,9 @@ static PointerRNA rna_tracking_active_track_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MovieTrackingTrack, act_track); } -static void rna_tracking_active_track_set(PointerRNA *ptr, PointerRNA value) +static void rna_tracking_active_track_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MovieClip *clip = (MovieClip *)ptr->id.data; MovieTrackingTrack *track = (MovieTrackingTrack *)value.data; @@ -165,7 +167,9 @@ static PointerRNA rna_tracking_active_plane_track_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MovieTrackingPlaneTrack, act_plane_track); } -static void rna_tracking_active_plane_track_set(PointerRNA *ptr, PointerRNA value) +static void rna_tracking_active_plane_track_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MovieClip *clip = (MovieClip *)ptr->id.data; MovieTrackingPlaneTrack *plane_track = (MovieTrackingPlaneTrack *)value.data; @@ -476,7 +480,9 @@ static PointerRNA rna_tracking_active_object_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_MovieTrackingObject, object); } -static void rna_tracking_active_object_set(PointerRNA *ptr, PointerRNA value) +static void rna_tracking_active_object_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { MovieClip *clip = (MovieClip *)ptr->id.data; MovieTrackingObject *object = (MovieTrackingObject *)value.data; diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index e4af1b549d6..f3080d6f659 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -694,7 +694,9 @@ static PointerRNA rna_PieMenu_layout_get(PointerRNA *ptr) return rptr; } -static void rna_Window_scene_set(PointerRNA *ptr, PointerRNA value) +static void rna_Window_scene_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { wmWindow *win = ptr->data; @@ -738,7 +740,9 @@ static PointerRNA rna_Window_workspace_get(PointerRNA *ptr) ptr, &RNA_WorkSpace, BKE_workspace_active_get(win->workspace_hook)); } -static void rna_Window_workspace_set(PointerRNA *ptr, PointerRNA value) +static void rna_Window_workspace_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { wmWindow *win = (wmWindow *)ptr->data; @@ -774,7 +778,9 @@ PointerRNA rna_Window_screen_get(PointerRNA *ptr) ptr, &RNA_Screen, BKE_workspace_active_screen_get(win->workspace_hook)); } -static void rna_Window_screen_set(PointerRNA *ptr, PointerRNA value) +static void rna_Window_screen_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { wmWindow *win = ptr->data; WorkSpace *workspace = BKE_workspace_active_get(win->workspace_hook); @@ -824,7 +830,9 @@ static PointerRNA rna_Window_view_layer_get(PointerRNA *ptr) return rna_pointer_inherit_refine(&scene_ptr, &RNA_ViewLayer, view_layer); } -static void rna_Window_view_layer_set(PointerRNA *ptr, PointerRNA value) +static void rna_Window_view_layer_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { wmWindow *win = ptr->data; ViewLayer *view_layer = value.data; @@ -1028,7 +1036,9 @@ static PointerRNA rna_WindowManager_active_keyconfig_get(PointerRNA *ptr) return rna_pointer_inherit_refine(ptr, &RNA_KeyConfig, kc); } -static void rna_WindowManager_active_keyconfig_set(PointerRNA *ptr, PointerRNA value) +static void rna_WindowManager_active_keyconfig_set(struct ReportList *UNUSED(reports), + PointerRNA *ptr, + PointerRNA value) { wmWindowManager *wm = ptr->data; wmKeyConfig *kc = value.data; diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 819dc3ac495..e5487a6a0c9 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2029,7 +2029,15 @@ static int pyrna_py_to_prop( else { /* data == NULL, assign to RNA */ if (value == Py_None || RNA_struct_is_a(param->ptr.type, ptr_type)) { - RNA_property_pointer_set(ptr, prop, value == Py_None ? PointerRNA_NULL : param->ptr); + ReportList reports; + BKE_reports_init(&reports, RPT_STORE); + RNA_property_pointer_set( + &reports, ptr, prop, value == Py_None ? PointerRNA_NULL : param->ptr); + int err = (BPy_reports_to_error(&reports, PyExc_RuntimeError, true)); + if (err == -1) { + Py_XDECREF(value_new); + return -1; + } } else { raise_error = true; |