# HG changeset patch # User John W. Eaton # Date 1457728792 18000 # Node ID 062c65569ad70ba97f61135aa0717ff167dfd1f6 # Parent 912b8828193bda6bbcd183d9d71aeaa76092a616 avoid some address-sanitizer leak warnings (bug #47372) * octave-qt-link.cc (octave_qt_link::~octave_qt_link): Delete command_interpreter and main_thread. * octave-link.h, octave-link.cc (octave_link::~octave_link): Delete event_queue_mutex. * main.in.cc (main): Declare new_argv as static. diff -r 912b8828193b -r 062c65569ad7 libgui/src/octave-qt-link.cc --- a/libgui/src/octave-qt-link.cc Fri Mar 11 10:39:08 2016 -0800 +++ b/libgui/src/octave-qt-link.cc Fri Mar 11 15:39:52 2016 -0500 @@ -63,7 +63,11 @@ main_thread->start (); } -octave_qt_link::~octave_qt_link (void) { } +octave_qt_link::~octave_qt_link (void) +{ + delete command_interpreter; + delete main_thread; +} void octave_qt_link::execute_interpreter (void) diff -r 912b8828193b -r 062c65569ad7 libinterp/corefcn/octave-link.cc --- a/libinterp/corefcn/octave-link.cc Fri Mar 11 10:39:08 2016 -0800 +++ b/libinterp/corefcn/octave-link.cc Fri Mar 11 15:39:52 2016 -0500 @@ -55,6 +55,11 @@ command_editor::add_event_hook (octave_readline_hook); } +octave_link::~octave_link (void) +{ + delete event_queue_mutex; +} + void octave_link::set_workspace (void) { diff -r 912b8828193b -r 062c65569ad7 libinterp/corefcn/octave-link.h --- a/libinterp/corefcn/octave-link.h Fri Mar 11 10:39:08 2016 -0800 +++ b/libinterp/corefcn/octave-link.h Fri Mar 11 15:39:52 2016 -0500 @@ -53,7 +53,7 @@ public: - virtual ~octave_link (void) { } + virtual ~octave_link (void); static void generate_events (void) { diff -r 912b8828193b -r 062c65569ad7 src/main.in.cc --- a/src/main.in.cc Fri Mar 11 10:39:08 2016 -0800 +++ b/src/main.in.cc Fri Mar 11 15:39:52 2016 -0500 @@ -446,7 +446,9 @@ std::string file = octave_cli; #endif - char **new_argv = new char * [argc + 1]; + // Declaring new_argv static avoids leak warnings when using GCC's + // --address-sanitizer option. + static char **new_argv = new char * [argc + 1]; int k = 1;