diff --git a/examples/Protonect.cpp b/examples/Protonect.cpp index 269bf4c51..2b2dc1ed9 100644 --- a/examples/Protonect.cpp +++ b/examples/Protonect.cpp @@ -135,6 +135,8 @@ int main(int argc, char *argv[]) MyFileLogger *filelogger = new MyFileLogger(getenv("LOGFILE")); if (filelogger->good()) libfreenect2::setGlobalLogger(filelogger); + else + delete filelogger; /// [file logging] /// [context] diff --git a/examples/viewer.cpp b/examples/viewer.cpp index 9c1c0b078..adc386260 100644 --- a/examples/viewer.cpp +++ b/examples/viewer.cpp @@ -6,9 +6,6 @@ Viewer::Viewer() : shader_folder("src/shader/"), win_width(600), win_height(400) { - // init glfw - if already initialized nothing happens - int init = glfwInit(); - } static void glfwErrorCallback(int error, const char* description) @@ -18,6 +15,9 @@ static void glfwErrorCallback(int error, const char* description) void Viewer::initialize() { + // init glfw - if already initialized nothing happens + int init = glfwInit(); + GLFWerrorfun prev_func = glfwSetErrorCallback(glfwErrorCallback); if (prev_func) glfwSetErrorCallback(prev_func); diff --git a/src/cpu_depth_packet_processor.cpp b/src/cpu_depth_packet_processor.cpp index b16c5c542..143f3d2c6 100644 --- a/src/cpu_depth_packet_processor.cpp +++ b/src/cpu_depth_packet_processor.cpp @@ -304,6 +304,12 @@ class CpuDepthPacketProcessorImpl: public WithPerfLogging //ir_frame = new Frame(512, 424, 12); } + ~CpuDepthPacketProcessorImpl() + { + delete ir_frame; + delete depth_frame; + } + /** Allocate a new depth frame. */ void newDepthFrame() { diff --git a/src/depth_packet_stream_parser.cpp b/src/depth_packet_stream_parser.cpp index 4b7e9e7b9..273d21abf 100644 --- a/src/depth_packet_stream_parser.cpp +++ b/src/depth_packet_stream_parser.cpp @@ -52,6 +52,7 @@ DepthPacketStreamParser::DepthPacketStreamParser() : DepthPacketStreamParser::~DepthPacketStreamParser() { + delete[] work_buffer_.data; } void DepthPacketStreamParser::setPacketProcessor(libfreenect2::BaseDepthPacketProcessor *processor) diff --git a/src/frame_listener_impl.cpp b/src/frame_listener_impl.cpp index bf64a1f51..fac584b44 100644 --- a/src/frame_listener_impl.cpp +++ b/src/frame_listener_impl.cpp @@ -64,6 +64,7 @@ SyncMultiFrameListener::SyncMultiFrameListener(unsigned int frame_types) : SyncMultiFrameListener::~SyncMultiFrameListener() { + release(impl_->next_frame_); delete impl_; } diff --git a/src/libfreenect2.cpp b/src/libfreenect2.cpp index 92796c18a..addcb5207 100644 --- a/src/libfreenect2.cpp +++ b/src/libfreenect2.cpp @@ -465,6 +465,7 @@ class Freenect2Impl { unsigned char buffer[1024]; r = libusb_get_string_descriptor_ascii(dev_handle, dev_desc.iSerialNumber, buffer, sizeof(buffer)); + libusb_close(dev_handle); if(r > LIBUSB_SUCCESS) { @@ -481,8 +482,6 @@ class Freenect2Impl { LOG_ERROR << "failed to get serial number of Kinect v2: " << PrintBusAndDevice(dev, r); } - - libusb_close(dev_handle); } else { diff --git a/src/opencl_depth_packet_processor.cpp b/src/opencl_depth_packet_processor.cpp index 3d64ab3d2..429f20e9f 100644 --- a/src/opencl_depth_packet_processor.cpp +++ b/src/opencl_depth_packet_processor.cpp @@ -181,6 +181,12 @@ class OpenCLDepthPacketProcessorImpl: public WithPerfLogging } } + ~OpenCLDepthPacketProcessorImpl() + { + delete ir_frame; + delete depth_frame; + } + void generateOptions(std::string &options) const { std::ostringstream oss; diff --git a/src/opengl_depth_packet_processor.cpp b/src/opengl_depth_packet_processor.cpp index 3836c0574..40c6110d6 100644 --- a/src/opengl_depth_packet_processor.cpp +++ b/src/opengl_depth_packet_processor.cpp @@ -300,6 +300,11 @@ struct Texture : public WithOpenGLBindings { } + ~Texture() + { + delete[] data; + } + void bindToUnit(GLenum unit) { gl()->glActiveTexture(unit); @@ -981,6 +986,11 @@ void OpenGLDepthPacketProcessor::process(const DepthPacket &packet) delete depth; } } + else + { + delete ir; + delete depth; + } } } /* namespace libfreenect2 */ diff --git a/src/turbo_jpeg_rgb_packet_processor.cpp b/src/turbo_jpeg_rgb_packet_processor.cpp index 1105371b9..648dd869c 100644 --- a/src/turbo_jpeg_rgb_packet_processor.cpp +++ b/src/turbo_jpeg_rgb_packet_processor.cpp @@ -55,6 +55,8 @@ class TurboJpegRgbPacketProcessorImpl: public WithPerfLogging ~TurboJpegRgbPacketProcessorImpl() { + delete frame; + if(decompressor != 0) { if(tjDestroy(decompressor) == -1)