From: Stephen T. <st...@us...> - 2003-02-28 02:52:21
|
Update of /cvsroot/xine/xine-lib/src/audio_out In directory sc8-pr-cvs1:/tmp/cvs-serv21569/src/audio_out Modified Files: audio_alsa_out.c Log Message: 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 Index: audio_alsa_out.c =================================================================== RCS file: /cvsroot/xine/xine-lib/src/audio_out/audio_alsa_out.c,v retrieving revision 1.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- audio_alsa_out.c 21 Dec 2002 12:56:46 -0000 1.85 +++ audio_alsa_out.c 28 Feb 2003 02:51:47 -0000 1.86 @@ -521,8 +521,7 @@ snd_pcm_status_dump(pcm_stat, jcd_out); #endif if ((res = snd_pcm_prepare(this->audio_fd))<0) { - printf ("audio_alsa_out: xrun: prepare error: %s", snd_strerror(res)); - assert(0); + XINE_ASSERT (0,"audio_alsa_out: xrun: prepare error: %s", snd_strerror(res)); } state = snd_pcm_state(this->audio_fd); #ifdef LOG_DEBUG @@ -556,8 +555,7 @@ (state != SND_PCM_STATE_DRAINING) ) { printf("audio_alsa_out:write:BAD STATE2, state = %d, going to try XRUN\n",state); if ((res = snd_pcm_prepare(this->audio_fd))<0) { - printf ("audio_alsa_out: xrun: prepare error: %s", snd_strerror(res)); - assert(0); + XINE_ASSERT(0, "audio_alsa_out: xrun: prepare error: %s", snd_strerror(res)); } } } |