]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common: optimize env_to_vec implementation 37076/head
authorChangcheng Liu <changcheng.liu@aliyun.com>
Thu, 10 Sep 2020 07:09:42 +0000 (15:09 +0800)
committerChangcheng Liu <changcheng.liu@aliyun.com>
Thu, 10 Sep 2020 07:15:53 +0000 (15:15 +0800)
Check ENVs and return diretly if they doesn't exist before spliting
args.

Signed-off-by: Changcheng Liu <changcheng.liu@aliyun.com>
src/common/ceph_argparse.cc

index 28486e0523305ab8c6ccec49cbbb270b5df33bba..72d97f046c7f4fff03a8475620632a1dddf71301 100644 (file)
@@ -93,8 +93,6 @@ void env_to_vec(std::vector<const char*>& args, const char *name)
   if (!name)
     name = "CEPH_ARGS";
 
-  auto [options, arguments] = split_dashdash(args);
-
   /*
    * We can only populate str_vec once. Other threads could hold pointers into
    * it, so clearing it out and replacing it is not currently safe.
@@ -116,6 +114,7 @@ void env_to_vec(std::vector<const char*>& args, const char *name)
   g_str_vec_lock.unlock();
   auto [env_options, env_arguments] = split_dashdash(env);
 
+  auto [options, arguments] = split_dashdash(args);
   args.clear();
   args.insert(args.end(), env_options.begin(), env_options.end());
   args.insert(args.end(), options.begin(), options.end());