]> git.sesse.net Git - vlc/blob - include/debug.h
Encore un commit venu tout droit des abysses de l'enfer, d�sol� pour
[vlc] / include / debug.h
1 /*****************************************************************************
2  * debug.h: vlc debug macros
3  * Stand alone file
4  *****************************************************************************
5  * Copyright (C) 1999, 2000 VideoLAN
6  *
7  * Authors:
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public
20  * License along with this program; if not, write to the
21  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22  * Boston, MA 02111-1307, USA.
23  *****************************************************************************/
24
25 /*****************************************************************************
26  * Required headers:
27  * - <string.h>
28  * - intf_msg.h
29  *****************************************************************************/
30
31
32 /*****************************************************************************
33  * ASSERT
34  *****************************************************************************
35  * This macro is used to test that a pointer is not nul. It insert the needed
36  * code when the program is compiled with the debug option, but does nothing
37  * in release program.
38  *****************************************************************************/
39 #ifdef DEBUG
40 #define ASSERT(p_Mem)                                                         \
41 if (!(p_Mem))                                                                 \
42     intf_ErrMsg("Void pointer error: "                                        \
43                 "%s line %d (variable %s at address %p)\n",                   \
44                  __FILE__, __LINE__, #p_Mem, &p_Mem);
45
46 #else
47 #define ASSERT(p_Mem)
48
49 #endif
50
51
52 /*****************************************************************************
53  * RZERO
54  *****************************************************************************
55  * This macro is used to initialise a variable to 0. It is very useful when
56  * used with the ASSERT macro. It also only insert the needed code when the
57  * program is compiled with the debug option.
58  *****************************************************************************/
59 #ifdef DEBUG
60 #define RZERO(r_Var)                                                          \
61 bzero(&(r_Var), sizeof((r_Var)));
62
63 #else
64 #define RZERO(r_Var)
65
66 #endif
67
68
69 /*****************************************************************************
70  * PZERO
71  *****************************************************************************
72  * This macro is used to initiase the memory pointed out by a pointer to 0.
73  * It has the same purpose than RZERO, but for pointers.
74  *****************************************************************************/
75 #ifdef DEBUG
76 #define PZERO(p_Mem)                                                          \
77 bzero((p_Mem), sizeof(*(p_Mem)));
78
79 #else
80 #define PZERO(p_Mem)
81
82 #endif
83
84
85 /*****************************************************************************
86  * AZERO
87  *****************************************************************************
88  * This macro is used to initiase an array of variables to 0.
89  * It has the same purpose than RZERO or PZERO, but for array
90  *****************************************************************************/
91 #ifdef DEBUG
92 #define AZERO(p_Array, i_Size)                                                \
93 bzero((p_Array), (i_Size)*sizeof(*(p_Array)));
94
95 #else
96 #define ZERO(p_Array, i_Size)
97
98 #endif