jitterbug/try.h

10 lines
580 B
C
Raw Normal View History

2023-01-01 05:22:37 +02:00
#define __TRY_TRACE() do { \
printf("trace: %s:%d\n", __FILE__, __LINE__); \
} while(0) \
2022-12-25 20:54:10 +02:00
2023-01-01 05:22:37 +02:00
#define TRYPTR_NIL(M_expr) ({ void* _result = (void*)(M_expr); if (!_result) { __TRY_TRACE(); return (NULL); } _result; })
#define TRYPTR(M_expr) ({ void* _result = (void*)(M_expr); if (!_result) { __TRY_TRACE(); return (-1); } _result; })
#define TRYST_NIL(M_expr) ({ int _result = (int)(M_expr); if (_result < 0) { __TRY_TRACE(); return (NULL); } _result; })
#define TRYST(M_expr) ({ int _result = (int)(M_expr); if (_result < 0) { __TRY_TRACE(); return (-1); } _result; })