summaryrefslogtreecommitdiff
path: root/src/libmad
diff options
context:
space:
mode:
authorStephen Torri <storri@users.sourceforge.net>2003-02-28 02:51:47 +0000
committerStephen Torri <storri@users.sourceforge.net>2003-02-28 02:51:47 +0000
commit49327f43ca2196122a60314e67eeee929efea873 (patch)
tree1b9ce1d2b141d0e411e422df265f6d57183906e1 /src/libmad
parent7eb769e2d3c1abb16e53d87af5f8633967e7f6ce (diff)
downloadxine-lib-49327f43ca2196122a60314e67eeee929efea873.tar.gz
xine-lib-49327f43ca2196122a60314e67eeee929efea873.tar.bz2
Xine assert() replacement:
All assert() function calls, with exceptions of libdvdread and libdvdnav, have been replaced with XINE_ASSERT. Functionally XINE_ASSERT behaves just likes its predecesor but its adding the ability to print out a stack trace at the point where the assertion fails. So here are a few examples. assert (0); This use of assert was found in a couple locations most favorably being the default case of a switch statement. This was the only thing there. So if the switch statement was unable to find a match it would have defaulted to this and the user and the developers would be stuck wonder who died and where. So it has been replaced with XINE_ASSERT(0, "We have reach this point and don't have a default case"); It may seem a bit none descriptive but there is more going on behind the scene. In addition to checking a condition is true/false, in this case '0', the XINE_ASSERT prints out: <filename>:<function name>:<line number> - assertion '<assertion expression>' failed. <description> An example of this might be: input_dvd.c:open_plugin:1178 - assertion '0' failed. xine_malloc failed!!! You have run out of memory XINE_ASSERT and its helper function, print_trace, are found in src/xine-utils/xineutils.h CVS patchset: 4301 CVS date: 2003/02/28 02:51:47
Diffstat (limited to 'src/libmad')
-rw-r--r--src/libmad/global.h10
-rwxr-xr-xsrc/libmad/layer3.c13
-rwxr-xr-xsrc/libmad/timer.c10
3 files changed, 10 insertions, 23 deletions
diff --git a/src/libmad/global.h b/src/libmad/global.h
index 4bde6a82a..8d6723016 100644
--- a/src/libmad/global.h
+++ b/src/libmad/global.h
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id: global.h,v 1.2 2002/04/30 18:46:58 miguelfreitas Exp $
+ * $Id: global.h,v 1.3 2003/02/28 02:51:49 storri Exp $
*/
# ifndef LIBMAD_GLOBAL_H
@@ -47,12 +47,4 @@
# define USE_ASYNC
# endif
-# if !defined(HAVE_ASSERT_H)
-# if defined(NDEBUG)
-# define assert(x) /* nothing */
-# else
-# define assert(x) do { if (!(x)) abort(); } while (0)
-# endif
-# endif
-
# endif
diff --git a/src/libmad/layer3.c b/src/libmad/layer3.c
index b05dd4cbf..d4db46ffc 100755
--- a/src/libmad/layer3.c
+++ b/src/libmad/layer3.c
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id: layer3.c,v 1.3 2002/04/30 18:46:58 miguelfreitas Exp $
+ * $Id: layer3.c,v 1.4 2003/02/28 02:51:49 storri Exp $
*/
# ifdef HAVE_CONFIG_H
@@ -28,16 +28,13 @@
# include <stdlib.h>
# include <string.h>
-# ifdef HAVE_ASSERT_H
-# include <assert.h>
-# endif
-
# ifdef HAVE_LIMITS_H
# include <limits.h>
# else
# define CHAR_BIT 8
# endif
+# include "xineutils.h"
# include "fixed.h"
# include "bit.h"
# include "stream.h"
@@ -1250,7 +1247,7 @@ enum mad_error III_huffdecode(struct mad_bitptr *ptr, mad_fixed_t xr[576],
}
}
- assert(-bits_left <= MAD_BUFFER_GUARD * CHAR_BIT);
+ XINE_ASSERT(-bits_left <= (MAD_BUFFER_GUARD * CHAR_BIT), "-bits_left > (MAD_BUFFER_GUARD * CHAR_BIT");
# if 0 && defined(DEBUG)
if (bits_left < 0)
@@ -2433,8 +2430,8 @@ int mad_layer_III(struct mad_stream *stream, struct mad_frame *frame)
*stream->main_data + stream->md_len - si.main_data_begin);
if (md_len > si.main_data_begin) {
- assert(stream->md_len + md_len -
- si.main_data_begin <= MAD_BUFFER_MDLEN);
+ XINE_ASSERT((stream->md_len + md_len -
+ si.main_data_begin) <= MAD_BUFFER_MDLEN, "?");
memcpy(*stream->main_data + stream->md_len,
mad_bit_nextbyte(&stream->ptr),
diff --git a/src/libmad/timer.c b/src/libmad/timer.c
index d2ad43aeb..47dbfca41 100755
--- a/src/libmad/timer.c
+++ b/src/libmad/timer.c
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- * $Id: timer.c,v 1.3 2002/05/02 16:00:48 jcdutton Exp $
+ * $Id: timer.c,v 1.4 2003/02/28 02:51:50 storri Exp $
*/
# ifdef HAVE_CONFIG_H
@@ -28,9 +28,7 @@
# include <stdio.h>
# include <stdlib.h> /* For abort() */
-# ifdef HAVE_ASSERT_H
-# include <assert.h>
-# endif
+# include "xineutils.h"
# include "timer.h"
@@ -125,7 +123,7 @@ void reduce_rational(unsigned long *numer, unsigned long *denom)
factor = gcd(*numer, *denom);
- assert(factor != 0);
+ XINE_ASSERT(factor != 0, "value 'factor' is equal to 0. This will result in a divide by zero error.");
*numer /= factor;
*denom /= factor;
@@ -142,7 +140,7 @@ unsigned long scale_rational(unsigned long numer, unsigned long denom,
reduce_rational(&numer, &denom);
reduce_rational(&scale, &denom);
- assert(denom != 0);
+ XINE_ASSERT(denom != 0, "value 'denom' is 0. This will result in a divide by zero error");
if (denom < scale)
return numer * (scale / denom) + numer * (scale % denom) / denom;