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:

committed by
WebRTC LUCI CQ

parent
147cff0ad5
commit
d6e861da8b
@ -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",
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user