Report an error when trying to remove non-in-main datablock
After recent dependency graph API changes it became easy to violate ownership design (since its changed) and request removal of out-of-main temporary mesh. This confuses Blender and can cause crashes/locks. Fixes T64731: Blender freezes after assigning result of object.to_mesh()
This commit is contained in:
parent
32b5f24c2a
commit
f50cef95ef
|
@ -125,6 +125,14 @@ static void rna_Main_ID_remove(Main *bmain,
|
|||
bool do_ui_user)
|
||||
{
|
||||
ID *id = id_ptr->data;
|
||||
if (id->tag & LIB_TAG_NO_MAIN) {
|
||||
BKE_reportf(reports,
|
||||
RPT_ERROR,
|
||||
"%s '%s' is outside of main database and can not be removed from it",
|
||||
BKE_idcode_to_name(GS(id->name)),
|
||||
id->name + 2);
|
||||
return;
|
||||
}
|
||||
if (do_unlink) {
|
||||
BKE_id_delete(bmain, id);
|
||||
RNA_POINTER_INVALIDATE(id_ptr);
|
||||
|
|
Loading…
Reference in New Issue