Ignore:
Timestamp:
Jan 7, 2010, 10:54:26 PM (15 years ago)
Author:
[email protected]
Message:

2010-01-07 Laszlo Gombos <Laszlo Gombos>

Reviewed by Maciej Stachowiak.

Allow call sites to determine if ASSERT_* and LOG_* macros are operational
https://bugs.webkit.org/show_bug.cgi?id=33020

  • wtf/Assertions.h: Set ASSERT_MSG_DISABLED, FATAL_DISABLED, ERROR_DISABLED, LOG_DISABLED to 1 if the compiler does not support variadic macros. Refactor for better readibility.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/wtf/Assertions.h

    r52791 r52973  
    6262#endif
    6363
     64#if COMPILER(MSVC7) || COMPILER(WINSCW)
     65#define HAVE_VARIADIC_MACRO 0
     66#else
     67#define HAVE_VARIADIC_MACRO 1
     68#endif
     69
    6470#ifndef ASSERT_DISABLED
    6571#define ASSERT_DISABLED ASSERTIONS_DISABLED_DEFAULT
    6672#endif
    6773
     74#ifndef ASSERT_MSG_DISABLED
     75#if HAVE(VARIADIC_MACRO)
     76#define ASSERT_MSG_DISABLED ASSERTIONS_DISABLED_DEFAULT
     77#else
     78#define ASSERT_MSG_DISABLED 1
     79#endif
     80#endif
     81
    6882#ifndef ASSERT_ARG_DISABLED
    6983#define ASSERT_ARG_DISABLED ASSERTIONS_DISABLED_DEFAULT
     
    7185
    7286#ifndef FATAL_DISABLED
     87#if HAVE(VARIADIC_MACRO)
    7388#define FATAL_DISABLED ASSERTIONS_DISABLED_DEFAULT
     89#else
     90#define FATAL_DISABLED 1
     91#endif
    7492#endif
    7593
    7694#ifndef ERROR_DISABLED
     95#if HAVE(VARIADIC_MACRO)
    7796#define ERROR_DISABLED ASSERTIONS_DISABLED_DEFAULT
     97#else
     98#define ERROR_DISABLED 1
     99#endif
    78100#endif
    79101
    80102#ifndef LOG_DISABLED
     103#if HAVE(VARIADIC_MACRO)
    81104#define LOG_DISABLED ASSERTIONS_DISABLED_DEFAULT
     105#else
     106#define LOG_DISABLED 1
     107#endif
    82108#endif
    83109
     
    139165#endif
    140166
    141 /* ASSERT, ASSERT_WITH_MESSAGE, ASSERT_NOT_REACHED */
     167/* ASSERT, ASSERT_NOT_REACHED, ASSERT_UNUSED */
    142168
    143169#if OS(WINCE) && !PLATFORM(TORCHMOBILE)
     
    157183
    158184#define ASSERT(assertion) ((void)0)
    159 #if COMPILER(MSVC7)
    160 #define ASSERT_WITH_MESSAGE(assertion) ((void)0)
    161 #elif COMPILER(WINSCW)
    162 #define ASSERT_WITH_MESSAGE(assertion, arg...) ((void)0)
    163 #else
    164 #define ASSERT_WITH_MESSAGE(assertion, ...) ((void)0)
    165 #endif /* COMPILER(MSVC7) */
    166185#define ASSERT_NOT_REACHED() ((void)0)
    167186#define ASSERT_UNUSED(variable, assertion) ((void)variable)
     
    175194    } \
    176195while (0)
    177 #if COMPILER(MSVC7)
     196
     197#define ASSERT_NOT_REACHED() do { \
     198    WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, 0); \
     199    CRASH(); \
     200} while (0)
     201
     202#define ASSERT_UNUSED(variable, assertion) ASSERT(assertion)
     203
     204#endif
     205
     206/* ASSERT_WITH_MESSAGE */
     207
     208#if COMPILER(MSVC7)
    178209#define ASSERT_WITH_MESSAGE(assertion) ((void)0)
    179210#elif COMPILER(WINSCW)
    180211#define ASSERT_WITH_MESSAGE(assertion, arg...) ((void)0)
     212#elif ASSERT_MSG_DISABLED
     213#define ASSERT_WITH_MESSAGE(assertion, ...) ((void)0)
    181214#else
    182215#define ASSERT_WITH_MESSAGE(assertion, ...) do \
     
    186219    } \
    187220while (0)
    188 #endif /* COMPILER(MSVC7) */
    189 #define ASSERT_NOT_REACHED() do { \
    190     WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, 0); \
    191     CRASH(); \
    192 } while (0)
    193 
    194 #define ASSERT_UNUSED(variable, assertion) ASSERT(assertion)
    195 
    196 #endif
    197 
     221#endif
     222                       
     223                       
    198224/* ASSERT_ARG */
    199225
     
    220246/* FATAL */
    221247
    222 #if FATAL_DISABLED && !COMPILER(MSVC7) && !COMPILER(WINSCW)
     248#if COMPILER(MSVC7)
     249#define FATAL() ((void)0)
     250#elif COMPILER(WINSCW)
     251#define FATAL(arg...) ((void)0)
     252#elif FATAL_DISABLED
    223253#define FATAL(...) ((void)0)
    224 #elif COMPILER(MSVC7)
    225 #define FATAL() ((void)0)
    226254#else
    227255#define FATAL(...) do { \
     
    233261/* LOG_ERROR */
    234262
    235 #if ERROR_DISABLED && !COMPILER(MSVC7) && !COMPILER(WINSCW)
     263#if COMPILER(MSVC7)
     264#define LOG_ERROR() ((void)0)
     265#elif COMPILER(WINSCW)
     266#define LOG_ERROR(arg...)  ((void)0)
     267#elif ERROR_DISABLED
    236268#define LOG_ERROR(...) ((void)0)
    237 #elif COMPILER(MSVC7)
    238 #define LOG_ERROR() ((void)0)
    239 #elif COMPILER(WINSCW)
    240 #define LOG_ERROR(arg...)  ((void)0)
    241269#else
    242270#define LOG_ERROR(...) WTFReportError(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, __VA_ARGS__)
     
    245273/* LOG */
    246274
    247 #if LOG_DISABLED && !COMPILER(MSVC7) && !COMPILER(WINSCW)
     275#if COMPILER(MSVC7)
     276#define LOG() ((void)0)
     277#elif COMPILER(WINSCW)
     278#define LOG(arg...) ((void)0)
     279#elif LOG_DISABLED
    248280#define LOG(channel, ...) ((void)0)
    249 #elif COMPILER(MSVC7)
    250 #define LOG() ((void)0)
    251 #elif COMPILER(WINSCW)
    252 #define LOG(arg...) ((void)0)
    253281#else
    254282#define LOG(channel, ...) WTFLog(&JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
     
    259287/* LOG_VERBOSE */
    260288
    261 #if LOG_DISABLED && !COMPILER(MSVC7) && !COMPILER(WINSCW)
     289#if COMPILER(MSVC7)
     290#define LOG_VERBOSE(channel) ((void)0)
     291#elif COMPILER(WINSCW)
     292#define LOG_VERBOSE(channel, arg...) ((void)0)
     293#elif LOG_DISABLED
    262294#define LOG_VERBOSE(channel, ...) ((void)0)
    263 #elif COMPILER(MSVC7)
    264 #define LOG_VERBOSE(channel) ((void)0)
    265 #elif COMPILER(WINSCW)
    266 #define LOG_VERBOSE(channel, arg...) ((void)0)
    267295#else
    268296#define LOG_VERBOSE(channel, ...) WTFLogVerbose(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, &JOIN_LOG_CHANNEL_WITH_PREFIX(LOG_CHANNEL_PREFIX, channel), __VA_ARGS__)
Note: See TracChangeset for help on using the changeset viewer.