diff options
Diffstat (limited to 'absl/log/internal/log_message.cc')
-rw-r--r-- | absl/log/internal/log_message.cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/absl/log/internal/log_message.cc b/absl/log/internal/log_message.cc index 4deca722..10ac2453 100644 --- a/absl/log/internal/log_message.cc +++ b/absl/log/internal/log_message.cc @@ -353,12 +353,12 @@ void LogMessage::FailQuietly() { } LogMessage& LogMessage::operator<<(const std::string& v) { - CopyToEncodedBuffer(v, StringType::kNotLiteral); + CopyToEncodedBuffer<StringType::kNotLiteral>(v); return *this; } LogMessage& LogMessage::operator<<(absl::string_view v) { - CopyToEncodedBuffer(v, StringType::kNotLiteral); + CopyToEncodedBuffer<StringType::kNotLiteral>(v); return *this; } LogMessage& LogMessage::operator<<(std::ostream& (*m)(std::ostream& os)) { @@ -525,8 +525,8 @@ void LogMessage::LogBacktraceIfNeeded() { // containing the specified string data using a `Value` field appropriate to // `str_type`. Truncates `str` if necessary, but emits nothing and marks the // buffer full if even the field headers do not fit. -void LogMessage::CopyToEncodedBuffer(absl::string_view str, - StringType str_type) { +template <LogMessage::StringType str_type> +void LogMessage::CopyToEncodedBuffer(absl::string_view str) { auto encoded_remaining_copy = data_->encoded_remaining; auto start = EncodeMessageStart( EventTag::kValue, BufferSizeFor(WireType::kLengthDelimited) + str.size(), @@ -547,7 +547,12 @@ void LogMessage::CopyToEncodedBuffer(absl::string_view str, data_->encoded_remaining.remove_suffix(data_->encoded_remaining.size()); } } -void LogMessage::CopyToEncodedBuffer(char ch, size_t num, StringType str_type) { +template void LogMessage::CopyToEncodedBuffer<LogMessage::StringType::kLiteral>( + absl::string_view str); +template void LogMessage::CopyToEncodedBuffer< + LogMessage::StringType::kNotLiteral>(absl::string_view str); +template <LogMessage::StringType str_type> +void LogMessage::CopyToEncodedBuffer(char ch, size_t num) { auto encoded_remaining_copy = data_->encoded_remaining; auto value_start = EncodeMessageStart( EventTag::kValue, BufferSizeFor(WireType::kLengthDelimited) + num, @@ -568,6 +573,10 @@ void LogMessage::CopyToEncodedBuffer(char ch, size_t num, StringType str_type) { data_->encoded_remaining.remove_suffix(data_->encoded_remaining.size()); } } +template void LogMessage::CopyToEncodedBuffer<LogMessage::StringType::kLiteral>( + char ch, size_t num); +template void LogMessage::CopyToEncodedBuffer< + LogMessage::StringType::kNotLiteral>(char ch, size_t num); LogMessageFatal::LogMessageFatal(const char* file, int line) : LogMessage(file, line, absl::LogSeverity::kFatal) {} |