From d5c1c0b10d5cab0639c0635c8632040dc8b97468 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Fri, 11 May 2018 11:21:30 +0200 Subject: Fix (unreported) broken freeing code for Sequencer. Freeing sequencer would always do usercount, which is now forbidden when called from main ID freeing code. Annoying in 2.7x, much more critical issue in 2.8! Also, moved RNA sequencer API functions to proper rna_scene_api.c file. --- source/blender/makesrna/intern/rna_scene.c | 8 -------- source/blender/makesrna/intern/rna_scene_api.c | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'source/blender/makesrna') diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 07e1c85c788..bddd78dc8e3 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7113,14 +7113,6 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_struct_type(prop, "SequenceEditor"); RNA_def_property_ui_text(prop, "Sequence Editor", ""); - func = RNA_def_function(srna, "sequence_editor_create", "BKE_sequencer_editing_ensure"); - RNA_def_function_ui_description(func, "Ensure sequence editor is valid in this scene"); - parm = RNA_def_pointer(func, "sequence_editor", "SequenceEditor", "", "New sequence editor data or NULL"); - RNA_def_function_return(func, parm); - - func = RNA_def_function(srna, "sequence_editor_clear", "BKE_sequencer_editing_free"); - RNA_def_function_ui_description(func, "Clear sequence editor in this scene"); - /* Keying Sets */ prop = RNA_def_property(srna, "keying_sets", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "keyingsets", NULL); diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c index e6d030877d7..058c0a321ec 100644 --- a/source/blender/makesrna/intern/rna_scene_api.c +++ b/source/blender/makesrna/intern/rna_scene_api.c @@ -185,6 +185,11 @@ static void rna_Scene_ray_cast( } } +static void rna_Scene_sequencer_editing_free(Scene *scene) +{ + BKE_sequencer_editing_free(scene, true); +} + #ifdef WITH_ALEMBIC static void rna_Scene_alembic_export( @@ -317,6 +322,16 @@ void RNA_api_scene(StructRNA *srna) parm = RNA_def_float_matrix(func, "matrix", 4, 4, NULL, 0.0f, 0.0f, "", "Matrix", 0.0f, 0.0f); RNA_def_function_output(func, parm); + /* Sequencer. */ + func = RNA_def_function(srna, "sequence_editor_create", "BKE_sequencer_editing_ensure"); + RNA_def_function_ui_description(func, "Ensure sequence editor is valid in this scene"); + parm = RNA_def_pointer(func, "sequence_editor", "SequenceEditor", "", "New sequence editor data or NULL"); + RNA_def_function_return(func, parm); + + func = RNA_def_function(srna, "sequence_editor_clear", "rna_Scene_sequencer_editing_free"); + RNA_def_function_ui_description(func, "Clear sequence editor in this scene"); + + #ifdef WITH_ALEMBIC /* XXX Deprecated, will be removed in 2.8 in favour of calling the export operator. */ func = RNA_def_function(srna, "alembic_export", "rna_Scene_alembic_export"); -- cgit v1.2.3