]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common: improve argv_to_vec() to accept both const and non-const argv
authorRonen Friedman <rfriedma@redhat.com>
Thu, 19 Aug 2021 12:59:06 +0000 (12:59 +0000)
committerRonen Friedman <rfriedma@redhat.com>
Thu, 19 Aug 2021 13:40:48 +0000 (16:40 +0300)
Some of Ceph main()'s use the standard 'char** av', while others use
'const char**'. The modified signature of argv_to_vec() handles both,
allowing us to remove the existing const-cast used by some executables.

Signed-off-by: Ronen Friedman <rfriedma@redhat.com>
src/common/ceph_argparse.cc
src/common/ceph_argparse.h

index 7b6662c98a8bbd708f6a8f5bc22ad98653a3fe36..9b989fe7270a77abffbd10f2f63746004e87aabb 100644 (file)
@@ -126,13 +126,7 @@ void env_to_vec(std::vector<const char*>& args, const char *name)
   args.insert(args.end(), arguments.begin(), arguments.end());
 }
 
-void argv_to_vec(int argc, const char **argv,
-                 std::vector<const char*>& args)
-{
-  args.insert(args.end(), argv + 1, argv + argc);
-}
-
-std::vector<const char*> argv_to_vec(int argc, const char** argv)
+std::vector<const char*> argv_to_vec(int argc, const char* const * argv)
 {
   assert(argc > 0);
   return {argv + 1, argv + argc};
index 06b3f2d995328689504d171fc6e321ed72104385..84b3fa1efec40bd5eb3a4591b5d18ed45d79dbb8 100644 (file)
@@ -43,10 +43,8 @@ public:
 /////////////////////// Functions ///////////////////////
 extern void string_to_vec(std::vector<std::string>& args, std::string argstr);
 extern void clear_g_str_vec();
-extern void env_to_vec(std::vector<const char*>& args, const char *name=NULL);
-extern void argv_to_vec(int argc, const char **argv,
-                 std::vector<const char*>& args);
-extern std::vector<const char*> argv_to_vec(int argc, const char** argv);
+extern void env_to_vec(std::vector<const char*>& args, const char *name=nullptr);
+extern std::vector<const char*> argv_to_vec(int argc, const char* const * argv);
 extern void vec_to_argv(const char *argv0, std::vector<const char*>& args,
                        int *argc, const char ***argv);