fix [#28351] active RenderLayer can be set to None, leading to crash

This commit is contained in:
Campbell Barton 2011-08-23 20:54:44 +00:00
parent a35b3c5b50
commit 3bb397be76

@ -700,8 +700,8 @@ static void rna_RenderSettings_active_layer_set(PointerRNA *ptr, PointerRNA valu
{ {
RenderData *rd= (RenderData*)ptr->data; RenderData *rd= (RenderData*)ptr->data;
SceneRenderLayer *srl= (SceneRenderLayer*)value.data; SceneRenderLayer *srl= (SceneRenderLayer*)value.data;
const int index= BLI_findindex(&rd->layers, srl);
rd->actlay = BLI_findindex(&rd->layers, srl); if (index != -1) rd->actlay= index;
} }
static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value) static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value)
@ -1973,7 +1973,7 @@ static void rna_def_render_layers(BlenderRNA *brna, PropertyRNA *cprop)
prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_UNSIGNED); prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_UNSIGNED);
RNA_def_property_struct_type(prop, "SceneRenderLayer"); RNA_def_property_struct_type(prop, "SceneRenderLayer");
RNA_def_property_pointer_funcs(prop, "rna_RenderSettings_active_layer_get", "rna_RenderSettings_active_layer_set", NULL, NULL); RNA_def_property_pointer_funcs(prop, "rna_RenderSettings_active_layer_get", "rna_RenderSettings_active_layer_set", NULL, NULL);
RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_NULL);
RNA_def_property_ui_text(prop, "Active Render Layer", "Active Render Layer"); RNA_def_property_ui_text(prop, "Active Render Layer", "Active Render Layer");
RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL);