37 lines
1.0 KiB
C
37 lines
1.0 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.
|
||
|
|
|
||
|
|
#ifndef THIRD_PARTY_BASE_CHECK_H_
|
||
|
|
#define THIRD_PARTY_BASE_CHECK_H_
|
||
|
|
|
||
|
|
#include <assert.h>
|
||
|
|
|
||
|
|
#include "build/build_config.h"
|
||
|
|
#include "third_party/base/compiler_specific.h"
|
||
|
|
#include "third_party/base/immediate_crash.h"
|
||
|
|
|
||
|
|
#define CHECK(condition) \
|
||
|
|
do { \
|
||
|
|
if (UNLIKELY(!(condition))) { \
|
||
|
|
pdfium::base::ImmediateCrash(); \
|
||
|
|
} \
|
||
|
|
} while (0)
|
||
|
|
|
||
|
|
#if defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON)
|
||
|
|
#define DCHECK_IS_ON() 0
|
||
|
|
#else
|
||
|
|
#define DCHECK_IS_ON() 1
|
||
|
|
#endif
|
||
|
|
|
||
|
|
// Debug mode: Use assert() for better diagnostics
|
||
|
|
// Release mode, DCHECK_ALWAYS_ON: Use CHECK() since assert() is a no-op.
|
||
|
|
// Release mode, no DCHECK_ALWAYS_ON: Use assert(), which is a no-op.
|
||
|
|
#if defined(NDEBUG) && defined(DCHECK_ALWAYS_ON)
|
||
|
|
#define DCHECK CHECK
|
||
|
|
#else
|
||
|
|
#define DCHECK assert
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif // THIRD_PARTY_BASE_CHECK_H_
|