diff options
Diffstat (limited to 'absl/log/flags.cc')
-rw-r--r-- | absl/log/flags.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/absl/log/flags.cc b/absl/log/flags.cc index b5308881..215b7bd5 100644 --- a/absl/log/flags.cc +++ b/absl/log/flags.cc @@ -90,19 +90,27 @@ ABSL_FLAG(std::string, log_backtrace_at, "", .OnUpdate([] { const std::string log_backtrace_at = absl::GetFlag(FLAGS_log_backtrace_at); - if (log_backtrace_at.empty()) return; + if (log_backtrace_at.empty()) { + absl::ClearLogBacktraceLocation(); + return; + } const size_t last_colon = log_backtrace_at.rfind(':'); - if (last_colon == log_backtrace_at.npos) return; + if (last_colon == log_backtrace_at.npos) { + absl::ClearLogBacktraceLocation(); + return; + } const absl::string_view file = absl::string_view(log_backtrace_at).substr(0, last_colon); int line; - if (absl::SimpleAtoi( + if (!absl::SimpleAtoi( absl::string_view(log_backtrace_at).substr(last_colon + 1), &line)) { - absl::SetLogBacktraceLocation(file, line); + absl::ClearLogBacktraceLocation(); + return; } + absl::SetLogBacktraceLocation(file, line); }); ABSL_FLAG(bool, log_prefix, true, |