VirtualBox

Changeset 37 in kStuff


Ignore:
Timestamp:
Nov 10, 2009 12:01:22 AM (15 years ago)
Author:
bird
Message:

kHlpAssert: stmt variations.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/k/kHlpAssert.h

    r29 r37  
    6767    } while (0)
    6868
     69# define kHlpAssert(expr, stmt) \
     70    do { \
     71        if (!(expr)) \
     72        { \
     73            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     74            kHlpAssertBreakpoint(); \
     75            stmt; \
     76        } \
     77    } while (0)
     78
    6979# define kHlpAssertReturn(expr, rcRet) \
    7080    do { \
     
    7787    } while (0)
    7888
     89# define kHlpAssertStmtReturn(expr, stmt, rcRet) \
     90    do { \
     91        if (!(expr)) \
     92        { \
     93            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     94            kHlpAssertBreakpoint(); \
     95            stmt; \
     96            return (rcRet); \
     97        } \
     98    } while (0)
     99
    79100# define kHlpAssertReturnVoid(expr) \
    80101    do { \
     
    87108    } while (0)
    88109
     110# define kHlpAssertStmtReturnVoid(expr, stmt) \
     111    do { \
     112        if (!(expr)) \
     113        { \
     114            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     115            kHlpAssertBreakpoint(); \
     116            stmt; \
     117            return; \
     118        } \
     119    } while (0)
     120
    89121# define kHlpAssertMsg(expr, msg) \
    90122    do { \
     
    97129    } while (0)
    98130
     131# define kHlpAssertMsgStmt(expr, msg, stmt) \
     132    do { \
     133        if (!(expr)) \
     134        { \
     135            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     136            kHlpAssertMsg2 msg; \
     137            kHlpAssertBreakpoint(); \
     138            stmt; \
     139        } \
     140    } while (0)
     141
    99142# define kHlpAssertMsgReturn(expr, msg, rcRet) \
    100143    do { \
     
    108151    } while (0)
    109152
     153# define kHlpAssertMsgReturn(expr, msg, stmt, rcRet) \
     154    do { \
     155        if (!(expr)) \
     156        { \
     157            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     158            kHlpAssertMsg2 msg; \
     159            kHlpAssertBreakpoint(); \
     160            stmt; \
     161            return (rcRet); \
     162        } \
     163    } while (0)
     164
    110165# define kHlpAssertMsgReturnVoid(expr, msg) \
    111166    do { \
     
    119174    } while (0)
    120175
     176# define kHlpAssertMsgReturnVoid(expr, msg, stmt) \
     177    do { \
     178        if (!(expr)) \
     179        { \
     180            kHlpAssertMsg1(#expr, __FILE__, __LINE__, __FUNCTION__); \
     181            kHlpAssertMsg2 msg; \
     182            kHlpAssertBreakpoint(); \
     183            stmt; \
     184            return; \
     185        } \
     186    } while (0)
     187
    121188#else   /* !K_STRICT */
    122 # define kHlpAssert(expr)                       do { } while (0)
    123 # define kHlpAssertReturn(expr, rcRet)          do { if (!(expr)) return (rcRet); } while (0)
    124 # define kHlpAssertReturnVoid(expr)             do { if (!(expr)) return; } while (0)
    125 # define kHlpAssertMsg(expr, msg)               do { } while (0)
    126 # define kHlpAssertMsgReturn(expr, msg, rcRet)  do { if (!(expr)) return (rcRet); } while (0)
    127 # define kHlpAssertMsgReturnVoid(expr, msg)     do { if (!(expr)) return; } while (0)
     189# define kHlpAssert(expr)                                   do { } while (0)
     190# define kHlpAssertStmt(expr, stmt)                         do { if (!(expr)) { stmt; }  } while (0)
     191# define kHlpAssertReturn(expr, rcRet)                      do { if (!(expr)) return (rcRet); } while (0)
     192# define kHlpAssertStmtReturn(expr, stmt, rcRet)            do { if (!(expr)) { stmt; return (rcRet); } } while (0)
     193# define kHlpAssertReturnVoid(expr)                         do { if (!(expr)) return; } while (0)
     194# define kHlpAssertStmtReturnVoid(expr, stmt)               do { if (!(expr)) { stmt; return; } } while (0)
     195# define kHlpAssertMsg(expr, msg)                           do { } while (0)
     196# define kHlpAssertMsgStmt(expr, msg, stmt)                 do { if (!(expr)) { stmt; } } while (0)
     197# define kHlpAssertMsgReturn(expr, msg, rcRet)              do { if (!(expr)) return (rcRet); } while (0)
     198# define kHlpAssertMsgStmtReturn(expr, msg, stmt, rcRet)    do { if (!(expr)) { stmt; return (rcRet); } } while (0)
     199# define kHlpAssertMsgReturnVoid(expr, msg)                 do { if (!(expr)) return; } while (0)
     200# define kHlpAssertMsgStmtReturnVoid(expr, msg, stmt)       do { if (!(expr)) { stmt; return; } } while (0)
    128201#endif  /* !K_STRICT */
    129202
    130203#define kHlpAssertPtr(ptr)                      kHlpAssertMsg(K_VALID_PTR(ptr), ("%s = %p\n", #ptr, (ptr)))
     204#define kHlpAssertPtrReturn(ptr, rcRet)         kHlpAssertMsgReturn(K_VALID_PTR(ptr), ("%s = %p -> %d\n", #ptr, (ptr), (rcRet)), (rcRet))
    131205#define kHlpAssertPtrReturn(ptr, rcRet)         kHlpAssertMsgReturn(K_VALID_PTR(ptr), ("%s = %p -> %d\n", #ptr, (ptr), (rcRet)), (rcRet))
    132206#define kHlpAssertPtrReturnVoid(ptr)            kHlpAssertMsgReturnVoid(K_VALID_PTR(ptr), ("%s = %p -> %d\n", #ptr, (ptr), (rcRet)))
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette