| Index: third_party/WebKit/Source/wtf/Assertions.h
|
| diff --git a/third_party/WebKit/Source/wtf/Assertions.h b/third_party/WebKit/Source/wtf/Assertions.h
|
| index 8d6b0680c8585dba522511537ca3aa2d475d4ac8..750ee7e3c975f9a027b64fe41070093370714ea1 100644
|
| --- a/third_party/WebKit/Source/wtf/Assertions.h
|
| +++ b/third_party/WebKit/Source/wtf/Assertions.h
|
| @@ -27,18 +27,11 @@
|
| #ifndef WTF_Assertions_h
|
| #define WTF_Assertions_h
|
|
|
| -/*
|
| - No namespaces because this file has to be includable from C and Objective-C.
|
| -
|
| - Note, this file uses many GCC extensions, but it should be compatible with
|
| - C, Objective C, C++, and Objective C++.
|
| -
|
| - For non-debug builds, everything is disabled by default, except for the
|
| - RELEASE_ASSERT family of macros.
|
| -
|
| - Defining any of the symbols explicitly prevents this from having any effect.
|
| -
|
| -*/
|
| +// This file uses some GCC extensions, but it should be compatible with C++ and
|
| +// Objective C++.
|
| +//
|
| +// For non-debug builds, everything is disabled by default, except for the
|
| +// RELEASE_ASSERT family of macros.
|
|
|
| #include "base/gtest_prod_util.h"
|
| #include "base/logging.h"
|
| @@ -63,10 +56,6 @@
|
| #endif /* defined(NDEBUG) && !defined(DCHECK_ALWAYS_ON) */
|
| #endif
|
|
|
| -#ifndef ASSERT_MSG_DISABLED
|
| -#define ASSERT_MSG_DISABLED !ENABLE(ASSERT)
|
| -#endif
|
| -
|
| #ifndef LOG_DISABLED
|
| #define LOG_DISABLED !ENABLE(ASSERT)
|
| #endif
|
| @@ -77,14 +66,13 @@
|
| #define WTF_ATTRIBUTE_PRINTF(formatStringArgument, extraArguments)
|
| #endif
|
|
|
| -/* These helper functions are always declared, but not necessarily always defined if the corresponding function is disabled. */
|
| +// These helper functions are always declared, but not necessarily always
|
| +// defined if the corresponding function is disabled.
|
|
|
| WTF_EXPORT void WTFReportAssertionFailure(const char* file, int line, const char* function, const char* assertion);
|
| +// WTFLogAlways() is deprecated. crbug.com/638849
|
| WTF_EXPORT void WTFLogAlways(const char* format, ...) WTF_ATTRIBUTE_PRINTF(1, 2);
|
| -
|
| -WTF_EXPORT void WTFGetBacktrace(void** stack, int* size);
|
| WTF_EXPORT void WTFReportBacktrace(int framesToShow = 31);
|
| -WTF_EXPORT void WTFPrintBacktrace(void** stack, int size);
|
|
|
| namespace WTF {
|
|
|
| @@ -138,7 +126,8 @@ private:
|
|
|
| } // namespace WTF
|
|
|
| -/* IMMEDIATE_CRASH() - Like CRASH() below but crashes in the fastest, simplest possible way with no attempt at logging. */
|
| +// IMMEDIATE_CRASH() - Like CRASH() below but crashes in the fastest, simplest
|
| +// possible way with no attempt at logging.
|
| #ifndef IMMEDIATE_CRASH
|
| #if COMPILER(GCC) || COMPILER(CLANG)
|
| #define IMMEDIATE_CRASH() __builtin_trap()
|
| @@ -147,7 +136,8 @@ private:
|
| #endif
|
| #endif
|
|
|
| -/* OOM_CRASH() - Specialization of IMMEDIATE_CRASH which will raise a custom exception on Windows to signal this is OOM and not a normal assert. */
|
| +// OOM_CRASH() - Specialization of IMMEDIATE_CRASH which will raise a custom
|
| +// exception on Windows to signal this is OOM and not a normal assert.
|
| #ifndef OOM_CRASH
|
| #if OS(WIN)
|
| #define OOM_CRASH() do { \
|
| @@ -159,14 +149,15 @@ private:
|
| #endif
|
| #endif
|
|
|
| -/* CRASH() - Raises a fatal error resulting in program termination and triggering either the debugger or the crash reporter.
|
| -
|
| - Use CRASH() in response to known, unrecoverable errors like out-of-memory.
|
| - Macro is enabled in both debug and release mode.
|
| - To test for unknown errors and verify assumptions, use ASSERT instead, to avoid impacting performance in release builds.
|
| -
|
| - Signals are ignored by the crash reporter on OS X so we must do better.
|
| -*/
|
| +// CRASH() - Raises a fatal error resulting in program termination and
|
| +// triggering either the debugger or the crash reporter.
|
| +//
|
| +// Use CRASH() in response to known, unrecoverable errors like out-of-memory.
|
| +// Macro is enabled in both debug and release mode.
|
| +// To test for unknown errors and verify assumptions, use ASSERT instead, to
|
| +// avoid impacting performance in release builds.
|
| +//
|
| +// Signals are ignored by the crash reporter on OS X so we must do better.
|
| #ifndef CRASH
|
| #if COMPILER(MSVC)
|
| #define CRASH() (__debugbreak(), IMMEDIATE_CRASH())
|
| @@ -190,7 +181,8 @@ private:
|
| // - NOTREACHED() for ASSERT_NOT_REACHED()
|
| // - DCHECK() and ALLOW_UNUSED_LOCAL() for ASSERT_UNUSED().
|
| #if OS(WIN)
|
| -/* FIXME: Change to use something other than ASSERT to avoid this conflict with the underlying platform */
|
| +// FIXME: Change to use something other than ASSERT to avoid this conflict with
|
| +// the underlying platform.
|
| #undef ASSERT
|
| #endif
|
|
|
| @@ -263,13 +255,11 @@ private:
|
| #define SECURITY_CHECK(condition) CHECK(condition)
|
| #endif
|
|
|
| -/* RELEASE_ASSERT
|
| -
|
| - Use in places where failure of an assertion indicates a definite security
|
| - vulnerability from which execution must not continue even in a release build.
|
| - Please sure to file bugs for these failures using the security template:
|
| - http://code.google.com/p/chromium/issues/entry?template=Security%20Bug
|
| -*/
|
| +// RELEASE_ASSERT
|
| +// Use in places where failure of an assertion indicates a definite security
|
| +// vulnerability from which execution must not continue even in a release build.
|
| +// Please sure to file bugs for these failures using the security template:
|
| +// http://code.google.com/p/chromium/issues/entry?template=Security%20Bug
|
| // RELEASE_ASSERT is deprecated. We should use CHECK() instead.
|
| #if ENABLE(ASSERT)
|
| #define RELEASE_ASSERT(assertion) ASSERT(assertion)
|
| @@ -279,10 +269,10 @@ private:
|
| // TODO(tkent): Move this to base/logging.h?
|
| #define RELEASE_NOTREACHED() LOG(FATAL)
|
|
|
| -/* DEFINE_COMPARISON_OPERATORS_WITH_REFERENCES */
|
| -
|
| -// Allow equality comparisons of Objects by reference or pointer, interchangeably.
|
| -// This can be only used on types whose equality makes no other sense than pointer equality.
|
| +// DEFINE_COMPARISON_OPERATORS_WITH_REFERENCES
|
| +// Allow equality comparisons of Objects by reference or pointer,
|
| +// interchangeably. This can be only used on types whose equality makes no
|
| +// other sense than pointer equality.
|
| #define DEFINE_COMPARISON_OPERATORS_WITH_REFERENCES(thisType) \
|
| inline bool operator==(const thisType& a, const thisType& b) { return &a == &b; } \
|
| inline bool operator==(const thisType& a, const thisType* b) { return &a == b; } \
|
| @@ -291,8 +281,9 @@ private:
|
| inline bool operator!=(const thisType& a, const thisType* b) { return !(a == b); } \
|
| inline bool operator!=(const thisType* a, const thisType& b) { return !(a == b); }
|
|
|
| -/* DEFINE_TYPE_CASTS */
|
| -
|
| +// DEFINE_TYPE_CASTS
|
| +// Provide static_cast<> wrappers with ASSERT_WITH_SECURITY_IMPLICATION for bad
|
| +// casts.
|
| #define DEFINE_TYPE_CASTS(thisType, argumentType, argumentName, pointerPredicate, referencePredicate) \
|
| inline thisType* to##thisType(argumentType* argumentName) \
|
| { \
|
| @@ -317,4 +308,4 @@ inline const thisType& to##thisType(const argumentType& argumentName) \
|
| void to##thisType(const thisType*); \
|
| void to##thisType(const thisType&)
|
|
|
| -#endif /* WTF_Assertions_h */
|
| +#endif // WTF_Assertions_h
|
|
|