From 28bcb8bdf568875eeea1349e39b7958d77c8fcc1 Mon Sep 17 00:00:00 2001 From: Thomas Jansen Date: Sat, 25 Sep 2010 15:00:43 +0200 Subject: 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. --- src/mpd_error.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/mpd_error.h (limited to 'src/mpd_error.h') 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 + +/* 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 -- cgit v1.2.3