Skip to content

Commit 11f4c56

Browse files
committed
Plug some memory leaks
viewer.{h,cpp} are ignored this time.
1 parent 2e91125 commit 11f4c56

8 files changed

+29
-2
lines changed

examples/Protonect.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ int main(int argc, char *argv[])
135135
MyFileLogger *filelogger = new MyFileLogger(getenv("LOGFILE"));
136136
if (filelogger->good())
137137
libfreenect2::setGlobalLogger(filelogger);
138+
else
139+
delete filelogger;
138140
/// [file logging]
139141

140142
/// [context]

src/cpu_depth_packet_processor.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,12 @@ class CpuDepthPacketProcessorImpl: public WithPerfLogging
304304
//ir_frame = new Frame(512, 424, 12);
305305
}
306306

307+
~CpuDepthPacketProcessorImpl()
308+
{
309+
delete ir_frame;
310+
delete depth_frame;
311+
}
312+
307313
/** Allocate a new depth frame. */
308314
void newDepthFrame()
309315
{

src/depth_packet_stream_parser.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ DepthPacketStreamParser::DepthPacketStreamParser() :
5252

5353
DepthPacketStreamParser::~DepthPacketStreamParser()
5454
{
55+
delete[] work_buffer_.data;
5556
}
5657

5758
void DepthPacketStreamParser::setPacketProcessor(libfreenect2::BaseDepthPacketProcessor *processor)

src/frame_listener_impl.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ SyncMultiFrameListener::SyncMultiFrameListener(unsigned int frame_types) :
6464

6565
SyncMultiFrameListener::~SyncMultiFrameListener()
6666
{
67+
release(impl_->next_frame_);
6768
delete impl_;
6869
}
6970

src/libfreenect2.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ class Freenect2Impl
465465
{
466466
unsigned char buffer[1024];
467467
r = libusb_get_string_descriptor_ascii(dev_handle, dev_desc.iSerialNumber, buffer, sizeof(buffer));
468+
libusb_close(dev_handle);
468469

469470
if(r > LIBUSB_SUCCESS)
470471
{
@@ -481,8 +482,6 @@ class Freenect2Impl
481482
{
482483
LOG_ERROR << "failed to get serial number of Kinect v2: " << PrintBusAndDevice(dev, r);
483484
}
484-
485-
libusb_close(dev_handle);
486485
}
487486
else
488487
{

src/opencl_depth_packet_processor.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,12 @@ class OpenCLDepthPacketProcessorImpl: public WithPerfLogging
181181
}
182182
}
183183

184+
~OpenCLDepthPacketProcessorImpl()
185+
{
186+
delete ir_frame;
187+
delete depth_frame;
188+
}
189+
184190
void generateOptions(std::string &options) const
185191
{
186192
std::ostringstream oss;

src/opengl_depth_packet_processor.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,11 @@ struct Texture : public WithOpenGLBindings
300300
{
301301
}
302302

303+
~Texture()
304+
{
305+
delete[] data;
306+
}
307+
303308
void bindToUnit(GLenum unit)
304309
{
305310
gl()->glActiveTexture(unit);
@@ -981,6 +986,11 @@ void OpenGLDepthPacketProcessor::process(const DepthPacket &packet)
981986
delete depth;
982987
}
983988
}
989+
else
990+
{
991+
delete ir;
992+
delete depth;
993+
}
984994
}
985995

986996
} /* namespace libfreenect2 */

src/turbo_jpeg_rgb_packet_processor.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ class TurboJpegRgbPacketProcessorImpl: public WithPerfLogging
5555

5656
~TurboJpegRgbPacketProcessorImpl()
5757
{
58+
delete frame;
59+
5860
if(decompressor != 0)
5961
{
6062
if(tjDestroy(decompressor) == -1)

0 commit comments

Comments
 (0)