changeset 29608:dc171e0452cf

libgui: Avoid dangling reference with QString::toStdString. * libgui/src/m-editor/file-editor-tab.cc (check_valid_codec), libgui/src/resource-manager.cc (read_lexer_settings), libgui/src/settings-dialog.cc (write_lexer_settings): Avoid dangling reference to char * with QString::toStdString.
author Markus Mützel <markus.muetzel@gmx.de>
date Wed, 05 May 2021 17:46:37 +0200
parents 0169ffb3fe5d
children 5f46f2aacb82
files libgui/src/m-editor/file-editor-tab.cc libgui/src/resource-manager.cc libgui/src/settings-dialog.cc
diffstat 3 files changed, 10 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor-tab.cc	Wed May 05 13:52:54 2021 +0200
+++ b/libgui/src/m-editor/file-editor-tab.cc	Wed May 05 17:46:37 2021 +0200
@@ -2429,9 +2429,10 @@
                               (u32_str.data ());
 
         std::size_t length;
+        const std::string encoding = m_encoding.toStdString ();
         char *res_str =
-          octave_u32_conv_to_encoding_strict (m_encoding.toStdString ().c_str (),
-                                              src, u32_str.size (), &length);
+          octave_u32_conv_to_encoding_strict (encoding.c_str (), src,
+                                              u32_str.size (), &length);
         if (! res_str)
           {
             if (errno == EILSEQ)
--- a/libgui/src/resource-manager.cc	Wed May 05 13:52:54 2021 +0200
+++ b/libgui/src/resource-manager.cc	Wed May 05 17:46:37 2021 +0200
@@ -408,14 +408,16 @@
         // Write settings if not just reload the default values
         if (def != settings_reload_default_colors_flag)
           {
-            lexer->writeSettings (*settings, group.toStdString ().c_str ());
+            const std::string group_str = group.toStdString ();
+            lexer->writeSettings (*settings, group_str.c_str ());
             settings->sync ();
           }
       }
     else
       {
         // Found lexer keys, read the settings
-        lexer->readSettings (*settings, group.toStdString ().c_str ());
+        const std::string group_str = group.toStdString ();
+        lexer->writeSettings (*settings, group_str.c_str ());
       }
   }
 #endif
--- a/libgui/src/settings-dialog.cc	Wed May 05 13:52:54 2021 +0200
+++ b/libgui/src/settings-dialog.cc	Wed May 05 17:46:37 2021 +0200
@@ -966,10 +966,10 @@
           }
       }
 
-    const char* group = QString ("Scintilla" + settings_color_modes_ext[mode])
-                                .toStdString ().c_str ();
+    const std::string group = 
+      QString ("Scintilla" + settings_color_modes_ext[mode]).toStdString ();
 
-    lexer->writeSettings (*settings, group);
+    lexer->writeSettings (*settings, group.c_str ());
 
     settings->setValue (sd_last_editor_styles_tab.key,
                         tabs_editor_lexers->currentIndex ());