aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/bfc/bfc_assert.h
blob: d58bc7ff4a6a52626308be3552fc39f3ca36d43b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef _ASSERT_H
#define _ASSERT_H

#include <bfc/wasabi_std.h>

#ifdef CPLUSPLUS
extern "C" {
#endif

COMEXP void _assert_handler(const char *reason, const char *file, int line);
COMEXP void _assert_handler_str(const char *string, const char *reason, const char *file, int line);

#ifdef CPLUSPLUS
}
#endif

#ifdef ASSERT
#undef ASSERT
#endif

// benski> added june 7 2007.. somewhat of a hack - don't want to enable assert's for final builds
#include "../../Winamp/buildtype.h"

#if defined(_DEBUG) /*|| defined(INTERNAL) */|| defined(BETA)
#define ASSERTS_ENABLED
#endif

#ifdef ASSERTS_ENABLED

  #define ASSERT(x) ((x) ? void() : _assert_handler(#x, __FILE__, __LINE__))
  #define ASSERTPR(x, str) ((x) ? void() : _assert_handler_str((str), #x, __FILE__, __LINE__))
  #define ASSERTALWAYS(str) _assert_handler_str((str), 0, __FILE__, __LINE__)
#else
  #define ASSERT(x) ;
  #define ASSERTPR(x,y) ;
  #define ASSERTALWAYS ;
#endif

#endif