From 3707313e7dea178a44f13daa653e072f9b930b66 Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Tue, 31 Oct 2017 03:49:41 +0300 Subject: Small optimize of the IMF validator --- src/adlmidi_load.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/adlmidi_load.cpp') diff --git a/src/adlmidi_load.cpp b/src/adlmidi_load.cpp index 08892a5..3f2ad8c 100644 --- a/src/adlmidi_load.cpp +++ b/src/adlmidi_load.cpp @@ -578,6 +578,7 @@ riffskip: { // Try parsing as an IMF file { + uint8_t raw[4]; size_t end = static_cast(HeaderBuf[0]) + 256 * static_cast(HeaderBuf[1]); if(!end || (end & 3)) @@ -589,11 +590,13 @@ riffskip: for(unsigned n = 0; n < 42; ++n) { - int64_t value1 = fr.getc(); - value1 += fr.getc() << 8; + if(fr.read(raw, 1, 4) != 4) + break; + int64_t value1 = raw[0]; + value1 += raw[1] << 8; sum1 += value1; - int64_t value2 = fr.getc(); - value2 += fr.getc() << 8; + int64_t value2 = raw[2]; + value2 += raw[3] << 8; sum2 += value2; } -- cgit v1.2.3