changeset 21440:062c65569ad7

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.
author John W. Eaton <jwe@octave.org>
date Fri, 11 Mar 2016 15:39:52 -0500
parents 912b8828193b
children 46a9c7afe419
files libgui/src/octave-qt-link.cc libinterp/corefcn/octave-link.cc libinterp/corefcn/octave-link.h src/main.in.cc
diffstat 4 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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)
 {
--- 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)
   {
--- 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;