1/* 2 * libid3tag - ID3 tag manipulation library 3 * Copyright (C) 2000-2004 Underbit Technologies, Inc. 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * 19 * $Id: global.h,v 1.9 2004/01/23 09:41:32 rob Exp $ 20 */ 21 22# ifndef LIBID3TAG_GLOBAL_H 23# define LIBID3TAG_GLOBAL_H 24 25/* conditional debugging */ 26 27# if defined(DEBUG) && defined(NDEBUG) 28# error "cannot define both DEBUG and NDEBUG" 29# endif 30 31# if defined(DEBUG) 32# include <stdio.h> 33# include "debug.h" 34# define malloc(sz) id3_debug_malloc(sz, __FILE__, __LINE__) 35# define calloc(n, sz) id3_debug_calloc(n, sz, __FILE__, __LINE__) 36# define realloc(ptr, sz) id3_debug_realloc(ptr, sz, __FILE__, __LINE__) 37# define free(ptr) id3_debug_free(ptr, __FILE__, __LINE__) 38# define release(ptr) id3_debug_release(ptr, __FILE__, __LINE__) 39# else 40# define release(ptr) (ptr) 41# endif 42 43/* conditional features */ 44 45# if !defined(HAVE_ASSERT_H) 46# if defined(NDEBUG) 47# define assert(x) /* nothing */ 48# else 49# define assert(x) do { if (!(x)) abort(); } while (0) 50# endif 51# endif 52 53# endif 54