do not assert/abort out of data errors that may originate with external user-supplied data, and use PBD::error instead
git-svn-id: svn://localhost/ardour2/branches/3.0@9978 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
dd6e76ad89
commit
1f845c0e32
@ -25,6 +25,7 @@
|
|||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
|
|
||||||
#include "pbd/compose.h"
|
#include "pbd/compose.h"
|
||||||
|
#include "pbd/error.h"
|
||||||
|
|
||||||
#include "evoral/Control.hpp"
|
#include "evoral/Control.hpp"
|
||||||
#include "evoral/ControlList.hpp"
|
#include "evoral/ControlList.hpp"
|
||||||
@ -35,6 +36,8 @@
|
|||||||
#include "evoral/TypeMap.hpp"
|
#include "evoral/TypeMap.hpp"
|
||||||
#include "evoral/midi_util.h"
|
#include "evoral/midi_util.h"
|
||||||
|
|
||||||
|
#include "i18n.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace PBD;
|
using namespace PBD;
|
||||||
|
|
||||||
@ -874,10 +877,17 @@ Sequence<Time>::append_note_on_unlocked (NotePtr note, event_id_t evid)
|
|||||||
DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1 c=%2 note %3 on @ %4 v=%5\n", this,
|
DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1 c=%2 note %3 on @ %4 v=%5\n", this,
|
||||||
(int) note->channel(), (int) note->note(),
|
(int) note->channel(), (int) note->note(),
|
||||||
note->time(), (int) note->velocity()));
|
note->time(), (int) note->velocity()));
|
||||||
assert(note->note() <= 127);
|
|
||||||
assert(note->channel() < 16);
|
|
||||||
assert(_writing);
|
assert(_writing);
|
||||||
|
|
||||||
|
if (note->note() > 127) {
|
||||||
|
error << string_compose (_("illegal note number (%1) used in Note event - event will be ignored"), note->note()) << endmsg;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (note->channel() >= 16) {
|
||||||
|
error << string_compose (_("illegal channel number (%1) used in Note event - event will be ignored"), note->channel()) << endmsg;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (note->id() < 0) {
|
if (note->id() < 0) {
|
||||||
note->set_id (evid);
|
note->set_id (evid);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user