diff options
author | Bastien Montagne <bastien@blender.org> | 2020-11-17 14:56:26 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-11-17 14:56:26 +0300 |
commit | cd9ce01657dcdf2a1cc866a0290ab089df799c81 (patch) | |
tree | b72bad5ba1ffc9fd32e5637660f5f38ebb4598b3 /source/blender/makesrna/RNA_define.h | |
parent | a25bc7963353c09308bb93a3fc6f0bc756fd71ef (diff) |
RNA define: check and report invalid usages of ID pointers properties.
Some RNA structs, like operators or keymaps, are not allowed to have ID
pointer properties. now this check will ignore those, and report an
error message in the console.
Related to T82597.
Notes: While a bit more involved than rBf39fbb3e6046, this commit
remains fairly localized and non-intrusive.
It relies on some rather obscure and weird behaviors of our RNA code
though, a cleaner solution could be e.g. to add a tye to
`StructOrFunctionRNA`, so that we could properly 'rebuild' (re-cast) the
pointer to either `StructRNA` or `FunctionRNA` when needed in internal
code...
Diffstat (limited to 'source/blender/makesrna/RNA_define.h')
-rw-r--r-- | source/blender/makesrna/RNA_define.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index 272246d75d3..c12426ffcd0 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -372,7 +372,9 @@ void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item void RNA_def_property_enum_native_type(PropertyRNA *prop, const char *native_enum_type); void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength); void RNA_def_property_struct_type(PropertyRNA *prop, const char *type); -void RNA_def_property_struct_runtime(PropertyRNA *prop, StructRNA *type); +void RNA_def_property_struct_runtime(StructOrFunctionRNA *cont, + PropertyRNA *prop, + StructRNA *type); void RNA_def_property_boolean_default(PropertyRNA *prop, bool value); void RNA_def_property_boolean_array_default(PropertyRNA *prop, const bool *array); |