Skip to content

Commit bc7c43f

Browse files
committed
Fix bugs
1 parent ab2bd4f commit bc7c43f

4 files changed

Lines changed: 14 additions & 6 deletions

File tree

src/plugins/audio/audiocontext/AudioClipAudioContext.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,9 @@ namespace Audio {
3535
AudioClipAudioContext::~AudioClipAudioContext() {
3636
Q_D(AudioClipAudioContext);
3737
s_audioClipAudioContexts.remove(d->clip);
38-
d->trackContext->removeAudioClip(audioClipId(d->clip));
38+
if (d->trackContext) {
39+
d->trackContext->removeAudioClip(audioClipId(d->clip));
40+
}
3941
}
4042

4143
AudioClipAudioContext *AudioClipAudioContext::of(dspx::AudioClip *clip) {

src/plugins/audio/audiocontext/AudioClipAudioContext_p.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
#include <audio/AudioClipAudioContext.h>
55

6+
#include <QPointer>
7+
68
namespace talcs {
79
class DspxAudioClipContext;
810
class DspxTrackContext;
@@ -16,7 +18,7 @@ namespace Audio {
1618
AudioClipAudioContext *q_ptr{};
1719
Core::ProjectWindowInterface *windowHandle{};
1820
dspx::AudioClip *clip{};
19-
talcs::DspxTrackContext *trackContext{};
21+
QPointer<talcs::DspxTrackContext> trackContext{};
2022
talcs::DspxAudioClipContext *clipContext{};
2123
AudioClipAudioContext::Status status = AudioClipAudioContext::Unknown;
2224
QString realAudioPath;

src/plugins/audio/audiocontext/TrackAudioContext.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@ namespace Audio {
2727
TrackAudioContext::~TrackAudioContext() {
2828
Q_D(TrackAudioContext);
2929
s_trackAudioContexts.remove(d->track);
30-
const auto index = d->projectContext->tracks().indexOf(d->trackContext);
31-
if (index >= 0) {
32-
d->projectContext->removeTrack(index);
30+
if (d->projectContext) {
31+
const auto index = d->projectContext->tracks().indexOf(d->trackContext);
32+
if (index >= 0) {
33+
d->projectContext->removeTrack(index);
34+
}
3335
}
3436
}
3537

src/plugins/audio/audiocontext/TrackAudioContext_p.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
#include <audio/TrackAudioContext.h>
55

6+
#include <QPointer>
7+
68
namespace talcs {
79
class DspxProjectContext;
810
class DspxTrackContext;
@@ -16,7 +18,7 @@ namespace Audio {
1618
TrackAudioContext *q_ptr{};
1719
Core::ProjectWindowInterface *windowHandle{};
1820
dspx::Track *track{};
19-
talcs::DspxProjectContext *projectContext{};
21+
QPointer<talcs::DspxProjectContext> projectContext{};
2022
talcs::DspxTrackContext *trackContext{};
2123

2224
static TrackAudioContext *create(Core::ProjectWindowInterface *windowHandle, dspx::Track *track, talcs::DspxProjectContext *projectContext, int index);

0 commit comments

Comments
 (0)