git-hulk commented on code in PR #881:
URL: https://github.com/apache/incubator-kvrocks/pull/881#discussion_r973573170


##########
src/redis_cmd.cc:
##########
@@ -4132,6 +4151,78 @@ class CommandEcho : public Commander {
   }
 };
 
+/* HELLO [<protocol-version> [AUTH <password>] [SETNAME <name>] ] */
+class CommandHello final : public Commander {
+public:

Review Comment:
   ```suggestion
    public:
   ```



##########
src/redis_reply.cc:
##########
@@ -45,36 +45,39 @@ std::string MultiLen(int64_t len) {
   return "*"+std::to_string(len)+"\r\n";
 }
 
-std::string MultiBulkString(std::vector<std::string> values, bool 
output_nil_for_empty_string) {
+std::string MultiBulkString(const std::vector<std::string>& values, bool 
output_nil_for_empty_string) {
+  std::string result = "*" + std::to_string(values.size()) + CRLF;
   for (size_t i = 0; i < values.size(); i++) {
     if (values[i].empty() && output_nil_for_empty_string) {
-      values[i] = NilString();
+      result += NilString();
     }  else {
-      values[i] = BulkString(values[i]);
+      result += BulkString(values[i]);
     }
   }
-  return Array(values);
+  return result;
 }
 
 
-std::string MultiBulkString(std::vector<std::string> values, const 
std::vector<rocksdb::Status> &statuses) {
+std::string MultiBulkString(const std::vector<std::string>& values, const 
std::vector<rocksdb::Status> &statuses) {
+  std::string result = "*" + std::to_string(values.size()) + CRLF;
   for (size_t i = 0; i < values.size(); i++) {
     if (i < statuses.size() && !statuses[i].ok()) {
-      values[i] = NilString();
+      result += NilString();
     } else {
-      values[i] = BulkString(values[i]);
+      result += BulkString(values[i]);
     }
   }
-  return Array(values);
+  return result;
 }
-std::string Array(std::vector<std::string> list) {
-  std::string::size_type n = std::accumulate(
-    list.begin(), list.end(), std::string::size_type(0),
-    [] ( std::string::size_type n, const std::string &s ) { return ( n += 
s.size() ); });
+
+std::string Array(const std::vector<std::string>& list) {
+  size_t n = std::accumulate(
+      list.begin(), list.end(), 0, [] (size_t n, const std::string &s) { 
return n + s.size(); });
   std::string result = "*" + std::to_string(list.size()) + CRLF;
-  result.reserve(n);
-  return std::accumulate(list.begin(), list.end(), result,
-    [](std::string &dest, std::string const &item) -> std::string& {dest += 
item; return dest;});
+  std::string::size_type final_size = result.size() + n;
+  result.reserve(final_size);
+  for(const auto& i : list) result += i;

Review Comment:
   ```suggestion
     for (const auto& i : list) result += i;
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to