liumh8 commented on a change in pull request #1128: URL: https://github.com/apache/incubator-brpc/pull/1128#discussion_r434983839
########## File path: src/brpc/redis.cpp ########## @@ -437,19 +437,21 @@ std::ostream& operator<<(std::ostream& os, const RedisResponse& response) { } bool RedisService::AddCommandHandler(const std::string& name, RedisCommandHandler* handler) { - std::string lcname = StringToLowerASCII(name); - auto it = _command_map.find(lcname); + butil::StringPiece name_piece(name); + auto it = _command_map.find(name_piece); if (it != _command_map.end()) { LOG(ERROR) << "redis command name=" << name << " exist"; return false; } - _command_map[lcname] = handler; + + _all_commands.push_back(name); + name_piece = _all_commands.back(); Review comment: 这个是因为FindCommandHandler要通过StringPiece查找Handler,`typedef std::unordered_map<butil::StringPiece, RedisCommandHandler*, StringPieceHasher> CommandMap` 所以这个map存的是StringPiece,为了使这个StringPiece所指向的字符串内存没有被释放,所以用了个list<string>来保存 ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org For additional commands, e-mail: dev-h...@brpc.apache.org