Use WriteFatalLog with overrides under Chromium

This replaces the former WriteFatalLogAndAbort function with the two new
WriteFatalLog functions that're already submitted as overrides in
Chromium.

The default implementations of these are not defined under
WEBRTC_CHROMIUM_BUILD.

Bug: chromium:1216177
Change-Id: I207e1f96f14094d742a51849f4fa6b4f1022333e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269780
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Peter Boström <pbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37652}
This commit is contained in:
Peter Boström
2022-07-29 13:44:21 -07:00
committed by WebRTC LUCI CQ
parent 147cff0ad5
commit d6e861da8b
2 changed files with 32 additions and 19 deletions

View File

@ -464,6 +464,10 @@ rtc_library("checks") {
"system:inline",
"system:rtc_export",
]
if (build_with_chromium) {
sources += [ "../../webrtc_overrides/rtc_base/checks_overrides.cc" ]
deps += [ "//base" ]
}
absl_deps = [
"//third_party/abseil-cpp/absl/meta:type_traits",
"//third_party/abseil-cpp/absl/strings",

View File

@ -39,21 +39,6 @@
namespace {
RTC_NORETURN void WriteFatalLogAndAbort(absl::string_view output) {
#if defined(WEBRTC_ANDROID)
std::string output_str(output);
__android_log_print(ANDROID_LOG_ERROR, RTC_LOG_TAG_ANDROID, "%s\n",
output_str.c_str());
#endif
fflush(stdout);
fwrite(output.data(), output.size(), 1, stderr);
fflush(stderr);
#if defined(WEBRTC_WIN)
DebugBreak();
#endif
abort();
}
#if defined(__GNUC__)
__attribute__((__format__(__printf__, 2, 3)))
#endif
@ -77,6 +62,30 @@ void AppendFormat(std::string* s, const char* fmt, ...) {
namespace rtc {
namespace webrtc_checks_impl {
#if !defined(WEBRTC_CHROMIUM_BUILD)
RTC_NORETURN void WriteFatalLog(absl::string_view output) {
#if defined(WEBRTC_ANDROID)
std::string output_str(output);
__android_log_print(ANDROID_LOG_ERROR, RTC_LOG_TAG_ANDROID, "%s\n",
output_str.c_str());
#endif
fflush(stdout);
fwrite(output.data(), output.size(), 1, stderr);
fflush(stderr);
#if defined(WEBRTC_WIN)
DebugBreak();
#endif
abort();
}
RTC_NORETURN void WriteFatalLog(const char* file,
int line,
absl::string_view output) {
WriteFatalLog(output);
}
#endif // !defined(WEBRTC_CHROMIUM_BUILD)
#if RTC_CHECK_MSG_ENABLED
// Reads one argument from args, appends it to s and advances fmt.
// Returns true iff an argument was sucessfully parsed.
@ -167,7 +176,7 @@ RTC_NORETURN void FatalLog(const char* file,
va_end(args);
WriteFatalLogAndAbort(s);
WriteFatalLog(file, line, s);
}
#else // RTC_CHECK_MSG_ENABLED
RTC_NORETURN void FatalLog(const char* file, int line) {
@ -180,7 +189,7 @@ RTC_NORETURN void FatalLog(const char* file, int line) {
"# Check failed.\n"
"# ",
file, line, LAST_SYSTEM_ERROR);
WriteFatalLogAndAbort(s);
WriteFatalLog(file, line, s);
}
#endif // RTC_CHECK_MSG_ENABLED
@ -195,7 +204,7 @@ RTC_NORETURN void UnreachableCodeReached(const char* file, int line) {
"# last system error: %u\n"
"# ",
file, line, LAST_SYSTEM_ERROR);
WriteFatalLogAndAbort(s);
WriteFatalLog(file, line, s);
}
#else // !RTC_DCHECK_IS_ON
@ -209,7 +218,7 @@ RTC_NORETURN void UnreachableCodeReached() {
"# last system error: %u\n"
"# ",
LAST_SYSTEM_ERROR);
WriteFatalLogAndAbort(s);
WriteFatalLog(s);
}
#endif // !RTC_DCHECK_IS_ON