summaryrefslogtreecommitdiff
path: root/libs/evoral
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-11-04 21:30:40 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2013-11-04 21:30:40 -0500
commit38afa297ee2f9f86291d34002de233d9db26f4ec (patch)
tree0d7fed11a13434ef2ec4ebac2f9330c40a97e2ed /libs/evoral
parentfe6c5612a2c46d6dbad32517d487b120bb8b65c4 (diff)
logic fix for SMF meta-event is-text determination, plus some gcc optimization-based unusued fixes
Diffstat (limited to 'libs/evoral')
-rw-r--r--libs/evoral/src/libsmf/smf_load.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/evoral/src/libsmf/smf_load.c b/libs/evoral/src/libsmf/smf_load.c
index 6da6036ea0..98d5ea8cff 100644
--- a/libs/evoral/src/libsmf/smf_load.c
+++ b/libs/evoral/src/libsmf/smf_load.c
@@ -278,7 +278,11 @@ expected_sysex_length(const unsigned char status, const unsigned char *second_by
uint32_t sysex_length = 0;
uint32_t len = 0;
+#ifndef NDEBUG
+ (void) status;
+#else
assert(status == 0xF0);
+#endif
if (buffer_length < 3) {
g_critical("SMF error: end of buffer in expected_sysex_length().");
@@ -541,7 +545,7 @@ extract_midi_event(const unsigned char *buf, const size_t buffer_length, smf_eve
static smf_event_t *
parse_next_event(smf_track_t *track)
{
- uint32_t time = 0;
+ uint32_t etime = 0;
uint32_t len;
size_t buffer_length;
unsigned char *c, *start;
@@ -560,7 +564,7 @@ parse_next_event(smf_track_t *track)
assert(buffer_length > 0);
/* First, extract time offset from previous event. */
- if (smf_extract_vlq(c, buffer_length, &time, &len))
+ if (smf_extract_vlq(c, buffer_length, &etime, &len))
goto error;
c += len;
@@ -578,7 +582,7 @@ parse_next_event(smf_track_t *track)
track->last_status = event->midi_buffer[0];
track->next_event_offset += c - start;
- smf_track_add_event_delta_pulses(track, event, time);
+ smf_track_add_event_delta_pulses(track, event, etime);
return (event);
@@ -633,7 +637,7 @@ smf_event_is_textual(const smf_event_t *event)
if (event->midi_buffer_length < 4)
return (0);
- if (event->midi_buffer[3] < 1 && event->midi_buffer[3] > 9)
+ if (event->midi_buffer[3] < 1 || event->midi_buffer[3] > 9)
return (0);
return (1);