Fix T55414: waveforms are reprocessed when undoing
Add new tag to bSound (runtime flags), and make read code to set a 'no reload waveform' new tag, since it uses a mapping to get existing waveform in undo case...
This commit is contained in:
@@ -757,15 +757,19 @@ int BKE_sound_scene_playing(struct Scene *scene)
|
||||
|
||||
void BKE_sound_free_waveform(bSound *sound)
|
||||
{
|
||||
SoundWaveform *waveform = sound->waveform;
|
||||
if (waveform) {
|
||||
if (waveform->data) {
|
||||
MEM_freeN(waveform->data);
|
||||
if ((sound->tags & SOUND_TAGS_WAVEFORM_NO_RELOAD) == 0) {
|
||||
SoundWaveform *waveform = sound->waveform;
|
||||
if (waveform) {
|
||||
if (waveform->data) {
|
||||
MEM_freeN(waveform->data);
|
||||
}
|
||||
MEM_freeN(waveform);
|
||||
}
|
||||
MEM_freeN(waveform);
|
||||
}
|
||||
|
||||
sound->waveform = NULL;
|
||||
sound->waveform = NULL;
|
||||
}
|
||||
/* This tag is only valid once. */
|
||||
sound->tags &= ~SOUND_TAGS_WAVEFORM_NO_RELOAD;
|
||||
}
|
||||
|
||||
void BKE_sound_read_waveform(bSound *sound, short *stop)
|
||||
|
||||
Reference in New Issue
Block a user