From 883268be2509917bf5aa94b3125e15c8f2006770 Mon Sep 17 00:00:00 2001 From: Gwenhael Goavec-Merou Date: Sun, 24 Jan 2021 18:21:47 +0100 Subject: [PATCH] efinixHexParser: use _raw_data instead of custom buffer --- src/efinixHexParser.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/efinixHexParser.cpp b/src/efinixHexParser.cpp index 08587db..5d1221e 100644 --- a/src/efinixHexParser.cpp +++ b/src/efinixHexParser.cpp @@ -30,17 +30,18 @@ EfinixHexParser::EfinixHexParser(const string &filename, bool reverseOrder): int EfinixHexParser::parse() { - char *c = new char[_file_size]; - _fd.read(c, sizeof(char) * _file_size); + _fd.read((char *)&_raw_data[0], sizeof(char) * _file_size); + if (_fd.gcount() != _file_size) { + printError("Error: fails to read full file content"); + return EXIT_FAILURE; + } for (int offset = 0; offset < _file_size; offset += 3) { char val; - sscanf(&c[offset], "%hhx", &val); + sscanf(&_raw_data[offset], "%hhx", &val); _bit_data += val; } _bit_length = _bit_data.size() * 8; - delete c; - return EXIT_SUCCESS; }