Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/space_action/action_edit.c8
-rw-r--r--source/blender/makesrna/intern/rna_space.c2
2 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c
index bc9c578b558..28e10a90a87 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -109,9 +109,11 @@ static int act_new_exec(bContext *C, wmOperator *UNUSED(op))
action = add_empty_action(bmain, "Action");
}
- /* when creating new ID blocks, use is already 1 (fake user),
- * but RNA pointer use also increases user, so this compensates it
+ /* when creating new ID blocks, there is already 1 user (as for all new datablocks),
+ * but the RNA pointer code will assign all the proper users instead, so we compensate
+ * for that here
*/
+ BLI_assert(action->id.us == 1);
action->id.us--;
RNA_id_pointer_create(&action->id, &idptr);
@@ -134,6 +136,8 @@ void ACTION_OT_new(wmOperatorType *ot)
/* api callbacks */
ot->exec = act_new_exec;
+ // TODO: add a new invoke() callback to catch cases where users unexpectedly delete their data
+
/* NOTE: this is used in the NLA too... */
//ot->poll = ED_operator_action_active;
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 11104dc6d11..9e7d70ab3b2 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -1127,7 +1127,7 @@ static void rna_SpaceDopeSheetEditor_action_update(Main *UNUSED(bmain), Scene *s
/* fix id-count of action we're replacing */
id_us_min(&adt->action->id);
- /* show new id-count of action we're replacing */
+ /* assign new action, and adjust the usercounts accordingly */
adt->action = saction->action;
id_us_plus(&adt->action->id);