From f3ea24d72e6a1a1c77e08b79e886a3721f000823 Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Fri, 30 Jun 2023 09:32:16 -0700 Subject: Rolls back use of emscripten_errn as some implementations may not be compatible. PiperOrigin-RevId: 544677169 Change-Id: I98874c5c8d1c9a057958b63e2b3c4fdd5daccd39 --- absl/log/internal/globals.cc | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'absl/log') diff --git a/absl/log/internal/globals.cc b/absl/log/internal/globals.cc index cc7a9836..9ba997d5 100644 --- a/absl/log/internal/globals.cc +++ b/absl/log/internal/globals.cc @@ -16,7 +16,6 @@ #include #include - #if defined(__EMSCRIPTEN__) #include #endif @@ -26,7 +25,6 @@ #include "absl/base/internal/raw_logging.h" #include "absl/base/log_severity.h" #include "absl/strings/string_view.h" -#include "absl/strings/strip.h" #include "absl/time/time.h" namespace absl { @@ -60,18 +58,16 @@ void SetInitialized() { } void WriteToStderr(absl::string_view message, absl::LogSeverity severity) { - if (message.empty()) return; #if defined(__EMSCRIPTEN__) // In WebAssembly, bypass filesystem emulation via fwrite. - // Skip a trailing newline character as emscripten_errn adds one itself. - const auto message_minus_newline = absl::StripSuffix(message, "\n"); - // emscripten_errn introduced in emscripten 3.1.41 -#if ABSL_INTERNAL_EMSCRIPTEN_VERSION >= 3001041 - emscripten_errn(message_minus_newline.data(), message_minus_newline.size()); -#else - std::string null_terminated_message(message_minus_newline); + // TODO(b/282811932): Avoid this copy if these emscripten functions can + // be updated to accept size directly. + std::string null_terminated_message(message); + if (!null_terminated_message.empty() && + null_terminated_message.back() == '\n') { + null_terminated_message.pop_back(); + } _emscripten_err(null_terminated_message.c_str()); -#endif #else // Avoid using std::cerr from this module since we may get called during // exit code, and cerr may be partially or fully destroyed by then. -- cgit v1.2.3