mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-25 23:37:05 +00:00
Fix crash undoing the copy of cels from a deleted layer
This could happen when we copied a cel from another document, then we closed that document, and undid the cmd::CopyCel in the destination document.
This commit is contained in:
parent
d8bbbfdea3
commit
b879fc855a
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2019 Igara Studio S.A.
|
||||
// Copyright (C) 2019-2020 Igara Studio S.A.
|
||||
// Copyright (C) 2001-2016 David Capello
|
||||
//
|
||||
// This program is distributed under the terms of
|
||||
@ -125,7 +125,11 @@ void CopyCel::onFireNotifications()
|
||||
{
|
||||
CmdSequence::onFireNotifications();
|
||||
|
||||
ASSERT(m_srcLayer.layer());
|
||||
// The m_srcLayer can be nullptr now because the layer from where we
|
||||
// copied this cel might not exist anymore (e.g. if we copied the
|
||||
// cel from another document that is already closed)
|
||||
//ASSERT(m_srcLayer.layer());
|
||||
|
||||
ASSERT(m_dstLayer.layer());
|
||||
|
||||
static_cast<Doc*>(m_dstLayer.layer()->sprite()->document())
|
||||
|
@ -228,7 +228,7 @@ void Doc::notifyLayerMergedDown(Layer* srcLayer, Layer* targetLayer)
|
||||
void Doc::notifyCelMoved(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, frame_t toFrame)
|
||||
{
|
||||
DocEvent ev(this);
|
||||
ev.sprite(fromLayer->sprite());
|
||||
ev.sprite(toLayer->sprite());
|
||||
ev.layer(fromLayer);
|
||||
ev.frame(fromFrame);
|
||||
ev.targetLayer(toLayer);
|
||||
@ -239,8 +239,8 @@ void Doc::notifyCelMoved(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, fr
|
||||
void Doc::notifyCelCopied(Layer* fromLayer, frame_t fromFrame, Layer* toLayer, frame_t toFrame)
|
||||
{
|
||||
DocEvent ev(this);
|
||||
ev.sprite(fromLayer->sprite());
|
||||
ev.layer(fromLayer);
|
||||
ev.sprite(toLayer->sprite());
|
||||
ev.layer(fromLayer); // From layer can be nullptr
|
||||
ev.frame(fromFrame);
|
||||
ev.targetLayer(toLayer);
|
||||
ev.targetFrame(toFrame);
|
||||
|
Loading…
x
Reference in New Issue
Block a user