Skip to content

Commit

Permalink
fix template misuse
Browse files Browse the repository at this point in the history
  • Loading branch information
ellutionist committed Sep 26, 2022
1 parent 41b2adb commit 42a8dab
Showing 1 changed file with 7 additions and 12 deletions.
19 changes: 7 additions & 12 deletions src/redis_cmd.cc
Original file line number Diff line number Diff line change
Expand Up @@ -476,23 +476,23 @@ class CommandSet : public Commander {
xx_ = true;
} else if (opt == "ex" && !ttl_ && !last_arg) {
std::string s = args_[++i];
StatusOr<int> parse_status = ParseInt(s);
auto parse_status = ParseInt<int>(s);
if (!parse_status.IsOK()) {
return Status(Status::RedisParseErr, errValueNotInterger);
}
ttl_ = parse_status.GetValue();
if (ttl_ <= 0) return Status(Status::RedisParseErr, errInvalidExpireTime);
} else if (opt == "exat" && !ttl_ && !expire_ && !last_arg) {
std::string s = args_[++i];
StatusOr<int64_t> parse_status = ParseInt(s);
auto parse_status = ParseInt<int64_t>(s);
if (!parse_status.IsOK()) {
return Status(Status::RedisParseErr, errValueNotInterger);
}
expire_ = parse_status.GetValue();
if (expire_ <= 0) return Status(Status::RedisParseErr, errInvalidExpireTime);
} else if (opt == "pxat" && !ttl_ && !expire_ && !last_arg) {
std::string s = args_[++i];
StatusOr<uint64_t> parse_status = ParseInt(s);
auto parse_status = ParseInt<uint64_t>(s);
if (!parse_status.IsOK()) {
return Status(Status::RedisParseErr, errValueNotInterger);
}
Expand All @@ -504,17 +504,12 @@ class CommandSet : public Commander {
expire_ = static_cast<int64_t>(expire_ms/1000);
}
} else if (opt == "px" && !ttl_ && !last_arg) {
int64_t ttl_ms = 0;
try {
std::string s = args_[++i];
std::string::size_type sz;
ttl_ms = std::stol(s, &sz);
if (sz != s.size()) {
return Status(Status::RedisParseErr, errValueNotInterger);
}
} catch (std::exception &e) {
std::string s = args_[++i];
auto parse_status = ParseInt<int64_t>(s);
if (!parse_status.IsOK()) {
return Status(Status::RedisParseErr, errValueNotInterger);
}
int64_t ttl_ms = parse_status.GetValue();
if (ttl_ms <= 0) return Status(Status::RedisParseErr, errInvalidExpireTime);
if (ttl_ms > 0 && ttl_ms < 1000) {
ttl_ = 1; // round up the pttl to second
Expand Down

0 comments on commit 42a8dab

Please sign in to comment.