diff options
author | Thomas Jansen <mithi@mithi.net> | 2010-09-25 15:00:43 +0200 |
---|---|---|
committer | Thomas Jansen <mithi@mithi.net> | 2010-09-25 15:00:43 +0200 |
commit | 28bcb8bdf568875eeea1349e39b7958d77c8fcc1 (patch) | |
tree | 17397be16e8067a48fd532a581081f68a1b17700 /src/mpd_error.h | |
parent | 9af9fd140032138894e4781caabee8a5a96edab8 (diff) | |
download | mpd-28bcb8bdf568875eeea1349e39b7958d77c8fcc1.tar.gz mpd-28bcb8bdf568875eeea1349e39b7958d77c8fcc1.tar.xz mpd-28bcb8bdf568875eeea1349e39b7958d77c8fcc1.zip |
eliminate g_error() usage
Replaced all occurrences of g_error() with MPD_ERROR() located in a new header
file 'mpd_error.h'. This macro uses g_critical() to print the error message
and then exits gracefully in contrast to g_error() which would internally call
abort() to produce a core dump.
The macro name is distinctive and allows to find all places with dubious error
handling. The long-term goal is to get rid of MPD_ERROR() altogether. To
facilitate the eventual removal of this macro it was added in a new header
file rather than to an existing header file.
This fixes #2995 and #3007.
Diffstat (limited to 'src/mpd_error.h')
-rw-r--r-- | src/mpd_error.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/mpd_error.h b/src/mpd_error.h new file mode 100644 index 000000000..95e120572 --- /dev/null +++ b/src/mpd_error.h @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2003-2010 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#ifndef MPD_ERROR_H +#define MPD_ERROR_H + +#include <stdlib.h> + +/* This macro is used as an intermediate step to a proper error handling + * using GError in mpd. It is used for unrecoverable error conditions + * and exits immediately. The long-term goal is to replace this macro by + * proper error handling. */ + +#define MPD_ERROR(...) \ + { \ + g_critical(__VA_ARGS__); \ + exit(EXIT_FAILURE); \ + } + +#endif |