diff options
author | Bastien Montagne <b.mont29@gmail.com> | 2020-02-19 18:07:21 +0300 |
---|---|---|
committer | Bastien Montagne <b.mont29@gmail.com> | 2020-02-19 18:10:57 +0300 |
commit | e317e9f6c75c238f4750db1bf80a9a3e8b2754f6 (patch) | |
tree | bf76228cf740fc6cdaadf0a4f3948125406709e2 /source/blender/makesrna | |
parent | 8c5e36d0a94568ddc990bed1137b3e5a149fa3c4 (diff) |
Fix T72751: Timeline crash from overridden scene.
Depsgraph RNA pointer would generate infinite loop in override comparisons.
Depsgraph pointer should never be considered here anyway, this is purely
runtime data.
Diffstat (limited to 'source/blender/makesrna')
-rw-r--r-- | source/blender/makesrna/RNA_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_layer.c | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index 6a60f09919b..243c3f049c7 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -292,6 +292,8 @@ typedef enum PropertyOverrideFlag { /** * Forbid usage of this property in comparison (& hence override) code. * Useful e.g. for collections of data like mesh's geometry, particles, etc. + * Also for runtime data that should never be considered as part of actual Blend data (e.g. + * dpesgraph from ViewLayers...). */ PROPOVERRIDE_NO_COMPARISON = (1 << 1), diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index 721fc8dddff..bf8df14d258 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -595,6 +595,7 @@ void RNA_def_view_layer(BlenderRNA *brna) /* Dependency Graph */ prop = RNA_def_property(srna, "depsgraph", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Depsgraph"); + RNA_def_property_override_flag(prop, PROPOVERRIDE_NO_COMPARISON); RNA_def_property_ui_text(prop, "Dependency Graph", "Dependencies in the scene data"); RNA_def_property_pointer_funcs(prop, "rna_ViewLayer_depsgraph_get", NULL, NULL, NULL); |