plugin: don't duplicate the program arguments
authorMax Kellermann <max@musicpd.org>
Tue, 18 Sep 2018 18:16:40 +0000 (20:16 +0200)
committerMax Kellermann <max@musicpd.org>
Tue, 18 Sep 2018 18:23:43 +0000 (20:23 +0200)
src/plugin.cxx
src/plugin.hxx

index e151306..af4033b 100644 (file)
@@ -96,9 +96,6 @@ struct PluginCycle {
                 next_plugin(0) {}
 
        ~PluginCycle() {
-               /* free argument list */
-               for (unsigned i = 1; i == 0 || argv[i] != nullptr; ++i)
-                       g_free(argv[i]);
                g_free(argv);
        }
 };
@@ -332,7 +329,7 @@ make_argv(const char*const* args)
        *ret++ = nullptr;
 
        while (*args != nullptr)
-               *ret++ = g_strdup(*args++);
+               *ret++ = const_cast<char *>(*args++);
 
        /* end of argument vector */
        *ret++ = nullptr;
index 49746d4..5baf581 100644 (file)
@@ -63,7 +63,7 @@ plugin_list_load_directory(PluginList *list, const char *path);
  *
  * @param list the plugin list
  * @param args nullptr terminated command line arguments passed to the
- * plugin programs
+ * plugin programs; they must remain valid while the plugin runs
  * @param callback the callback function which will be called when a
  * result is available
  * @param callback_data caller defined pointer which is passed to the