Changeset 2297 for trunk/src


Ignore:
Timestamp:
Jan 29, 2013, 4:59:02 PM (8 years ago)
Author:
sam
Message:

base: implement UNUSED() macro and put it here and there.

Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/base/assert.h

    r2265 r2297  
    3030#define LOL_1ST(a, ...) a
    3131
    32 #define LOL_NUM2(a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, \
    33                  a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, \
    34                  a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, \
    35                  a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, \
    36                  a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, \
    37                  a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, \
    38                  a61, a62, a63, ...) a63
    39 #define LOL_NUM(...) \
    40     LOL_EVAL(LOL_NUM2(__VA_ARGS__, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    41                                    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    42                                    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    43                                    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    44                                    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    45                                    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
    46                                    2, 1, TOO_MANY_ARGUMENTS))
     32#define LOL_GET_63RD(a01, a02, a03, a04, a05, a06, a07, a08, a09, a10, \
     33                     a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, \
     34                     a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, \
     35                     a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, \
     36                     a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, \
     37                     a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, \
     38                     a61, a62, a63, ...) a63
     39#define LOL_COUNT_TO_3(...) \
     40    LOL_EVAL(LOL_GET_63RD(__VA_ARGS__, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     41                                       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     42                                       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     43                                       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     44                                       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     45                                       3, 3, 3, 3, 3, 3, 3, 3, 3, 3, \
     46                                       2, 1, TOO_FEW_ARGUMENTS))
     47#define LOL_COUNT_TO_8(...) \
     48    LOL_EVAL(LOL_GET_63RD(__VA_ARGS__, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
     49                                       8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
     50                                       8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
     51                                       8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
     52                                       8, 8, 8, 8, 8, 8, 8, 8, 8, 8, \
     53                                       8, 8, 8, 8, 8, 7, 6, 5, 4, 3, \
     54                                       2, 1, TOO_FEW_ARGUMENTS))
    4755
    4856/* Three levels of dispatch are needed because of Visual Studio's bizarre
     
    5159#define LOL_CAT2(a, b) LOL_CAT3(a,b)
    5260#define LOL_CAT(a, b) LOL_CAT2(a,b)
     61
     62/*
     63 * UNUSED(): declare one or several variables as unused
     64 */
     65
     66#define LOL_UNUSED_1(a01) \
     67    sizeof(a01)
     68#define LOL_UNUSED_2(a01, a02) \
     69    sizeof(a01) + LOL_UNUSED_1(a02)
     70#define LOL_UNUSED_3(a01, a02, a03) \
     71    sizeof(a01) + LOL_UNUSED_2(a02, a03)
     72#define LOL_UNUSED_4(a01, a02, a03, a04) \
     73    sizeof(a01) + LOL_UNUSED_3(a02, a03, a04)
     74#define LOL_UNUSED_5(a01, a02, a03, a04, a05) \
     75    sizeof(a01) + LOL_UNUSED_4(a02, a03, a04, a05)
     76#define LOL_UNUSED_6(a01, a02, a03, a04, a05, a06) \
     77    sizeof(a01) + LOL_UNUSED_5(a02, a03, a04, a05, a06)
     78#define LOL_UNUSED_7(a01, a02, a03, a04, a05, a06, a07) \
     79    sizeof(a01) + LOL_UNUSED_6(a02, a03, a04, a05, a06, a07)
     80#define LOL_UNUSED_8(a01, a02, a03, a04, a05, a06, a07, a08) \
     81    sizeof(a01) + LOL_UNUSED_7(a02, a03, a04, a05, a06, a07, a08)
     82
     83#define UNUSED(...) (void)sizeof((void)( \
     84    LOL_CALL(LOL_CAT(LOL_UNUSED_, LOL_CALL(LOL_COUNT_TO_8, (__VA_ARGS__))), \
     85             (__VA_ARGS__))), 0) \
     86
     87/*
     88 * ASSERT(): test and enforce conditions at runtime
     89 */
    5390
    5491#define LOL_ERROR_1(t) \
     
    6299
    63100#if FINAL_RELEASE
    64 #   define ASSERT(...) (void)sizeof(LOL_CALL(LOL_1ST, (__VA_ARGS__)))
     101#   define ASSERT(...) UNUSED(LOL_CALL(LOL_1ST, (__VA_ARGS__)))
    65102#else
    66103#   define ASSERT(...) \
    67104        if (!(LOL_CALL(LOL_1ST, (__VA_ARGS__)))) \
    68105        { \
    69             LOL_CALL(LOL_CAT(LOL_ERROR_, LOL_CALL(LOL_NUM, (__VA_ARGS__))), \
     106            LOL_CALL(LOL_CAT(LOL_ERROR_, LOL_CALL(LOL_COUNT_TO_3, \
     107                                                  (__VA_ARGS__))), \
    70108                     (__VA_ARGS__)); \
    71109            Abort(); \
  • trunk/src/platform/android/androidapp.cpp

    r2222 r2297  
    174174void lol_android_main(int argc, char **argv)
    175175{
    176     (void)argc;
    177     (void)argv;
     176    UNUSED(argc, argv);
    178177}
    179178void lol_android_main(int argc, char **argv, char **envp)
    180179{
    181     (void)argc;
    182     (void)argv;
    183     (void)envp;
     180    UNUSED(argc, argv, envp);
    184181}
    185182
Note: See TracChangeset for help on using the changeset viewer.