summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2016-03-23 15:07:17 +0100
committerAndré Nusser <andre.nusser@googlemail.com>2016-03-23 15:07:17 +0100
commit04e088e65942b7f6fdd80c4e54768dca987ff9d7 (patch)
treedd8157050b17e3ad20935500ad7a586eead2e0b3
parent0728a11284f15100a8f8e0d9da0192019a056d6a (diff)
Fix horribly stupid bug.
-rw-r--r--src/drumkitparser.cc4
-rw-r--r--src/instrumentparser.cc11
-rw-r--r--src/midimapparser.cc5
3 files changed, 17 insertions, 3 deletions
diff --git a/src/drumkitparser.cc b/src/drumkitparser.cc
index eb0913a..7f798a8 100644
--- a/src/drumkitparser.cc
+++ b/src/drumkitparser.cc
@@ -242,5 +242,9 @@ int DrumKitParser::readData(std::string& data, std::size_t size)
return -1;
}
+ data.resize(size);
+ auto nr_of_bytes_read = fread((void*)data.data(), 1, size, fd);
+ data.resize(nr_of_bytes_read);
+ return nr_of_bytes_read;
return fread((char*)data.c_str(), 1, size, fd);
}
diff --git a/src/instrumentparser.cc b/src/instrumentparser.cc
index c04aee3..3b849e1 100644
--- a/src/instrumentparser.cc
+++ b/src/instrumentparser.cc
@@ -236,6 +236,13 @@ void InstrumentParser::endTag(const std::string& name)
int InstrumentParser::readData(std::string& data, std::size_t size)
{
- if(!fd) return -1;
- return fread((char*)data.c_str(), 1, size, fd);
+ if(!fd)
+ {
+ return -1;
+ }
+
+ data.resize(size);
+ auto nr_of_bytes_read = fread((void*)data.data(), 1, size, fd);
+ data.resize(nr_of_bytes_read);
+ return nr_of_bytes_read;
}
diff --git a/src/midimapparser.cc b/src/midimapparser.cc
index 3c8eed4..f66d063 100644
--- a/src/midimapparser.cc
+++ b/src/midimapparser.cc
@@ -57,5 +57,8 @@ int MidiMapParser::readData(std::string& data, std::size_t size)
return -1;
}
- return fread((char*)data.c_str(), 1, size, fd);
+ data.resize(size);
+ auto nr_of_bytes_read = fread((void*)data.data(), 1, size, fd);
+ data.resize(nr_of_bytes_read);
+ return nr_of_bytes_read;
}