Fix py-defined pointer properties wrong tag re ID ownership.
This fixes critical bug with liboverride when soe add-ons add some RNA ID Pointer properties. ID pointers should **never** have ownership of their ID when defined from python. (As a reminder, RNA properties owning their ID pointers are extremely rare even from C code, only embedded IDs (root node trees, master collections) and the shape keys snowflakes are concerned.)
This commit is contained in:
parent
4c460a2dbd
commit
db18ba07b5
Notes:
blender-bot
2023-02-13 23:16:02 +01:00
Referenced by issue #81963, Random rare crashes in override code - reported by studio
|
@ -1843,6 +1843,10 @@ void RNA_def_property_struct_runtime(PropertyRNA *prop, StructRNA *type)
|
|||
DefRNA.error = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if ((type->flag & STRUCT_ID) != 0) {
|
||||
prop->flag |= PROP_PTR_NO_OWNERSHIP;
|
||||
}
|
||||
}
|
||||
|
||||
void RNA_def_property_enum_native_type(PropertyRNA *prop, const char *native_enum_type)
|
||||
|
|
Loading…
Reference in New Issue