summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/file_meta_source_impl.cc
diff options
context:
space:
mode:
authorThomas Habets <thomas@habets.se>2019-12-21 18:36:21 +0000
committerMarcus Müller <marcus@hostalia.de>2020-01-02 23:43:00 +0100
commit9a2a421a9c54c2dd3fab29e0af9ca5446935d895 (patch)
tree38f7ccb05e387de8cdfd4e7b5068862c0b48536c /gr-blocks/lib/file_meta_source_impl.cc
parent067e336102603ccb0cbf92d3d2a8497f1182618b (diff)
gr-blocks/file.*: Remove needless memory management
Diffstat (limited to 'gr-blocks/lib/file_meta_source_impl.cc')
-rw-r--r--gr-blocks/lib/file_meta_source_impl.cc13
1 files changed, 5 insertions, 8 deletions
diff --git a/gr-blocks/lib/file_meta_source_impl.cc b/gr-blocks/lib/file_meta_source_impl.cc
index 6637420981..4f4c0620a7 100644
--- a/gr-blocks/lib/file_meta_source_impl.cc
+++ b/gr-blocks/lib/file_meta_source_impl.cc
@@ -116,11 +116,10 @@ bool file_meta_source_impl::read_header(pmt::pmt_t& hdr, pmt::pmt_t& extras)
size_t ret;
size_t size = 0;
std::string str;
- char* hdr_buffer = new char[METADATA_HEADER_SIZE];
+ std::vector<char> hdr_buffer(METADATA_HEADER_SIZE);
while (size < METADATA_HEADER_SIZE) {
ret = fread(&hdr_buffer[size], sizeof(char), METADATA_HEADER_SIZE - size, fp);
if (ret == 0) {
- delete[] hdr_buffer;
if (feof(fp))
return false;
else {
@@ -134,9 +133,9 @@ bool file_meta_source_impl::read_header(pmt::pmt_t& hdr, pmt::pmt_t& extras)
}
// Convert to string or the char array gets confused by the \0
- str.insert(0, hdr_buffer, METADATA_HEADER_SIZE);
+ str.insert(0, hdr_buffer.data(), METADATA_HEADER_SIZE);
hdr = pmt::deserialize_str(str);
- delete[] hdr_buffer;
+ hdr_buffer.clear();
uint64_t seg_start, extra_len = 0;
pmt::pmt_t r, dump;
@@ -148,11 +147,10 @@ bool file_meta_source_impl::read_header(pmt::pmt_t& hdr, pmt::pmt_t& extras)
if (extra_len > 0) {
size = 0;
- hdr_buffer = new char[extra_len];
+ hdr_buffer.resize(extra_len);
while (size < extra_len) {
ret = fread(&hdr_buffer[size], sizeof(char), extra_len - size, fp);
if (ret == 0) {
- delete[] hdr_buffer;
if (feof(fp))
return false;
else {
@@ -166,9 +164,8 @@ bool file_meta_source_impl::read_header(pmt::pmt_t& hdr, pmt::pmt_t& extras)
}
str.clear();
- str.insert(0, hdr_buffer, extra_len);
+ str.insert(0, hdr_buffer.data(), extra_len);
extras = pmt::deserialize_str(str);
- delete[] hdr_buffer;
}
return true;