mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 16:26:10 +03:00
116 lines
3.9 KiB
C++
116 lines
3.9 KiB
C++
// Copyright 2020 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "base/check.h"
|
|
|
|
// check.h is a widely included header and its size has significant impact on
|
|
// build time. Try not to raise this limit unless absolutely necessary. See
|
|
// https://chromium.googlesource.com/chromium/src/+/HEAD/docs/wmax_tokens.md
|
|
#ifndef NACL_TC_REV
|
|
#pragma clang max_tokens_here 17000
|
|
#endif
|
|
|
|
#include "base/check_op.h"
|
|
#include "base/logging.h"
|
|
#include "build/build_config.h"
|
|
|
|
namespace logging {
|
|
|
|
CheckError CheckError::Check(const char* file,
|
|
int line,
|
|
const char* condition) {
|
|
CheckError check_error(new LogMessage(file, line, LOGGING_FATAL));
|
|
check_error.stream() << "Check failed: " << condition << ". ";
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::CheckOp(const char* file,
|
|
int line,
|
|
CheckOpResult* check_op_result) {
|
|
CheckError check_error(new LogMessage(file, line, LOGGING_FATAL));
|
|
check_error.stream() << "Check failed: " << check_op_result->message_;
|
|
free(check_op_result->message_);
|
|
check_op_result->message_ = nullptr;
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::DCheck(const char* file,
|
|
int line,
|
|
const char* condition) {
|
|
CheckError check_error(new LogMessage(file, line, LOGGING_DCHECK));
|
|
check_error.stream() << "Check failed: " << condition << ". ";
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::DCheckOp(const char* file,
|
|
int line,
|
|
CheckOpResult* check_op_result) {
|
|
CheckError check_error(new LogMessage(file, line, LOGGING_DCHECK));
|
|
check_error.stream() << "Check failed: " << check_op_result->message_;
|
|
free(check_op_result->message_);
|
|
check_op_result->message_ = nullptr;
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::PCheck(const char* file,
|
|
int line,
|
|
const char* condition) {
|
|
SystemErrorCode err_code = logging::GetLastSystemErrorCode();
|
|
#if defined(OS_WIN)
|
|
CheckError check_error(
|
|
new Win32ErrorLogMessage(file, line, LOGGING_FATAL, err_code));
|
|
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
|
CheckError check_error(
|
|
new ErrnoLogMessage(file, line, LOGGING_FATAL, err_code));
|
|
#endif
|
|
check_error.stream() << "Check failed: " << condition << ". ";
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::PCheck(const char* file, int line) {
|
|
return PCheck(file, line, "");
|
|
}
|
|
|
|
CheckError CheckError::DPCheck(const char* file,
|
|
int line,
|
|
const char* condition) {
|
|
SystemErrorCode err_code = logging::GetLastSystemErrorCode();
|
|
#if defined(OS_WIN)
|
|
CheckError check_error(
|
|
new Win32ErrorLogMessage(file, line, LOGGING_DCHECK, err_code));
|
|
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
|
CheckError check_error(
|
|
new ErrnoLogMessage(file, line, LOGGING_DCHECK, err_code));
|
|
#endif
|
|
check_error.stream() << "Check failed: " << condition << ". ";
|
|
return check_error;
|
|
}
|
|
|
|
CheckError CheckError::NotImplemented(const char* file,
|
|
int line,
|
|
const char* function) {
|
|
CheckError check_error(new LogMessage(file, line, LOGGING_ERROR));
|
|
check_error.stream() << "Not implemented reached in " << function;
|
|
return check_error;
|
|
}
|
|
|
|
std::ostream& CheckError::stream() {
|
|
return log_message_->stream();
|
|
}
|
|
|
|
CheckError::~CheckError() {
|
|
// Note: This function ends up in crash stack traces. If its full name
|
|
// changes, the crash server's magic signature logic needs to be updated.
|
|
// See cl/306632920.
|
|
delete log_message_;
|
|
}
|
|
|
|
CheckError::CheckError(LogMessage* log_message) : log_message_(log_message) {}
|
|
|
|
void RawCheck(const char* message) {
|
|
RawLog(LOGGING_FATAL, message);
|
|
}
|
|
|
|
} // namespace logging
|