From 527ae32a6d3bc56ce44e8e74b16f14a3283355e1 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Sun, 3 Oct 2010 15:35:16 +0300 Subject: [PATCH] Fix some problems reported by Valgrind There is still memory leak records from stuff allocated via global constructors and one uninitialized value warning coming from inside Zlib. --- streamtools/dumpconvert.cpp | 1 + streamtools/packet-processor.cpp | 8 ++++++++ streamtools/resampler.cpp | 1 + streamtools/resize.cpp | 5 +++-- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/streamtools/dumpconvert.cpp b/streamtools/dumpconvert.cpp index 1e96c1f..a03822d 100644 --- a/streamtools/dumpconvert.cpp +++ b/streamtools/dumpconvert.cpp @@ -238,6 +238,7 @@ int real_main(int argc, char** argv) } p.send_end_of_stream(); close_output_drivers(); + delete &p; delete dropper; return 0; } diff --git a/streamtools/packet-processor.cpp b/streamtools/packet-processor.cpp index 5dff11a..0e19d19 100644 --- a/streamtools/packet-processor.cpp +++ b/streamtools/packet-processor.cpp @@ -33,6 +33,8 @@ packet_processor::~packet_processor() { for(std::list::iterator i = hardsubs.begin(); i != hardsubs.end(); ++i) delete *i; + delete &demux; + delete &using_resizer; } int64_t packet_processor::get_real_time(struct packet& p) @@ -88,6 +90,7 @@ void packet_processor::handle_packet(struct packet& q) break; case 5: subtitle_process_gameinfo(hardsubs, q); + delete &q; break; case 0: if(rate_denum > 0) { @@ -133,6 +136,11 @@ void packet_processor::handle_packet(struct packet& q) q.rp_timestamp += subtitle_delay; distribute_subtitle_callback(q); } + delete &q; + break; + default: + delete &q; + break; } } diff --git a/streamtools/resampler.cpp b/streamtools/resampler.cpp index 470fe7d..a7cf7a0 100644 --- a/streamtools/resampler.cpp +++ b/streamtools/resampler.cpp @@ -128,6 +128,7 @@ packet_demux::~packet_demux() { for(std::map::iterator i = resamplers.begin(); i != resamplers.end(); ++i) delete i->second; + delete &use_mixer; } sample_number_t packet_demux::nextsample() diff --git a/streamtools/resize.cpp b/streamtools/resize.cpp index 09f97d2..29cced1 100644 --- a/streamtools/resize.cpp +++ b/streamtools/resize.cpp @@ -124,9 +124,10 @@ image_frame_rgbx::image_frame_rgbx(uint32_t width, uint32_t height) { this->width = width; this->height = height; - if(width && height) + if(width && height) { this->imagedata = new unsigned char[4 * width * height]; - else + memset(this->imagedata, 0, 4 * width * height); + } else this->imagedata = NULL; } -- 2.11.4.GIT