Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(354)

Unified Diff: webrtc/base/checks.cc

Issue 2877023002: Move webrtc/{base => rtc_base} (Closed)
Patch Set: update presubmit.py and DEPS include rules Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/base/checks.h ('k') | webrtc/base/compile_assert_c.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/checks.cc
diff --git a/webrtc/base/checks.cc b/webrtc/base/checks.cc
deleted file mode 100644
index 32c2f58373658bf985d28b1e122bc0b42b044c54..0000000000000000000000000000000000000000
--- a/webrtc/base/checks.cc
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2006 The WebRTC Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-// Most of this was borrowed (with minor modifications) from V8's and Chromium's
-// src/base/logging.cc.
-
-// Use the C++ version to provide __GLIBCXX__.
-#include <cstdarg>
-#include <cstdio>
-#include <cstdlib>
-
-#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
-#include <cxxabi.h>
-#include <execinfo.h>
-#endif
-
-#if defined(WEBRTC_ANDROID)
-#define RTC_LOG_TAG "rtc"
-#include <android/log.h> // NOLINT
-#endif
-
-#if defined(WEBRTC_WIN)
-#include <windows.h>
-#endif
-
-#include "webrtc/base/checks.h"
-#include "webrtc/base/logging.h"
-
-#if defined(_MSC_VER)
-// Warning C4722: destructor never returns, potential memory leak.
-// FatalMessage's dtor very intentionally aborts.
-#pragma warning(disable:4722)
-#endif
-
-namespace rtc {
-
-void VPrintError(const char* format, va_list args) {
-#if defined(WEBRTC_ANDROID)
- __android_log_vprint(ANDROID_LOG_ERROR, RTC_LOG_TAG, format, args);
-#else
- vfprintf(stderr, format, args);
-#endif
-}
-
-void PrintError(const char* format, ...) {
- va_list args;
- va_start(args, format);
- VPrintError(format, args);
- va_end(args);
-}
-
-// TODO(ajm): This works on Mac (although the parsing fails) but I don't seem
-// to get usable symbols on Linux. This is copied from V8. Chromium has a more
-// advanced stace trace system; also more difficult to copy.
-void DumpBacktrace() {
-#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
- void* trace[100];
- int size = backtrace(trace, sizeof(trace) / sizeof(*trace));
- char** symbols = backtrace_symbols(trace, size);
- PrintError("\n==== C stack trace ===============================\n\n");
- if (size == 0) {
- PrintError("(empty)\n");
- } else if (symbols == nullptr) {
- PrintError("(no symbols)\n");
- } else {
- for (int i = 1; i < size; ++i) {
- char mangled[201];
- if (sscanf(symbols[i], "%*[^(]%*[(]%200[^)+]", mangled) == 1) { // NOLINT
- PrintError("%2d: ", i);
- int status;
- size_t length;
- char* demangled =
- abi::__cxa_demangle(mangled, nullptr, &length, &status);
- PrintError("%s\n", demangled != nullptr ? demangled : mangled);
- free(demangled);
- } else {
- // If parsing failed, at least print the unparsed symbol.
- PrintError("%s\n", symbols[i]);
- }
- }
- }
- free(symbols);
-#endif
-}
-
-FatalMessage::FatalMessage(const char* file, int line) {
- Init(file, line);
-}
-
-FatalMessage::FatalMessage(const char* file, int line, std::string* result) {
- Init(file, line);
- stream_ << "Check failed: " << *result << std::endl << "# ";
- delete result;
-}
-
-NO_RETURN FatalMessage::~FatalMessage() {
- fflush(stdout);
- fflush(stderr);
- stream_ << std::endl << "#" << std::endl;
- PrintError(stream_.str().c_str());
- DumpBacktrace();
- fflush(stderr);
- abort();
-}
-
-void FatalMessage::Init(const char* file, int line) {
- stream_ << std::endl << std::endl
- << "#" << std::endl
- << "# Fatal error in " << file << ", line " << line << std::endl
- << "# last system error: " << LAST_SYSTEM_ERROR << std::endl
- << "# ";
-}
-
-// MSVC doesn't like complex extern templates and DLLs.
-#if !defined(COMPILER_MSVC)
-// Explicit instantiations for commonly used comparisons.
-template std::string* MakeCheckOpString<int, int>(
- const int&, const int&, const char* names);
-template std::string* MakeCheckOpString<unsigned long, unsigned long>(
- const unsigned long&, const unsigned long&, const char* names);
-template std::string* MakeCheckOpString<unsigned long, unsigned int>(
- const unsigned long&, const unsigned int&, const char* names);
-template std::string* MakeCheckOpString<unsigned int, unsigned long>(
- const unsigned int&, const unsigned long&, const char* names);
-template std::string* MakeCheckOpString<std::string, std::string>(
- const std::string&, const std::string&, const char* name);
-#endif
-
-} // namespace rtc
-
-// Function to call from the C version of the RTC_CHECK and RTC_DCHECK macros.
-NO_RETURN void rtc_FatalMessage(const char* file, int line, const char* msg) {
- rtc::FatalMessage(file, line).stream() << msg;
-}
« no previous file with comments | « webrtc/base/checks.h ('k') | webrtc/base/compile_assert_c.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698