1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftdebug.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Debugging and logging component (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/* Copyright 1996-2002, 2004, 2006-2009, 2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* IMPORTANT: A description of FreeType's debugging support can be */ 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* found in `docs/DEBUG.TXT'. Read it if you need to use or */ 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand this code. */ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTDEBUG_H__ 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTDEBUG_H__ 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_CONFIG_CONFIG_H 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* force the definition of FT_DEBUG_LEVEL_ERROR if FT_DEBUG_LEVEL_TRACE */ 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* is already defined; this simplifies the following #ifdefs */ 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_TRACE 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#undef FT_DEBUG_LEVEL_ERROR 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_DEBUG_LEVEL_ERROR 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Define the trace enums as well as the trace levels array when they */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* are needed. */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_TRACE 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE_DEF( x ) trace_ ## x , 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* defining the enumeration */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef enum FT_Trace_ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_INTERNAL_TRACE_H 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project trace_count 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } FT_Trace; 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* defining the array of trace levels, provided by `src/base/ftdebug.c' */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project extern int ft_trace_levels[trace_count]; 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#undef FT_TRACE_DEF 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_DEBUG_LEVEL_TRACE */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Define the FT_TRACE macro */ 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* IMPORTANT! */ 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Each component must define the macro FT_COMPONENT to a valid FT_Trace */ 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* value before using any TRACE macro. */ 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_TRACE 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE( level, varformat ) \ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project do \ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { \ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project if ( ft_trace_levels[FT_COMPONENT] >= level ) \ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Message varformat; \ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } while ( 0 ) 92049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else /* !FT_DEBUG_LEVEL_TRACE */ 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 950a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_TRACE( level, varformat ) do { } while ( 0 ) /* nothing */ 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_DEBUG_LEVEL_TRACE */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Trace_Get_Count */ 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Return the number of available trace components. */ 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The number of trace components. 0 if FreeType 2 is not built with */ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_DEBUG_LEVEL_TRACE definition. */ 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This function may be useful if you want to access elements of */ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the internal `ft_trace_levels' array by an index. */ 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BASE( FT_Int ) 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Trace_Get_Count( void ); 118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Trace_Get_Name */ 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Return the name of a trace component. */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The index of the trace component. */ 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* The name of the trace component. This is a statically allocated */ 133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* C string, so do not free it after use. NULL if FreeType 2 is not */ 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* built with FT_DEBUG_LEVEL_TRACE definition. */ 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Use @FT_Trace_Get_Count to get the number of available trace */ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* components. */ 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This function may be useful if you want to control FreeType 2's */ 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* debug level in your application. */ 142049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BASE( const char * ) 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Trace_Get_Name( FT_Int idx ); 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* You need two opening and closing parentheses! */ 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Example: FT_TRACE0(( "Value is %i", foo )) */ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Output of the FT_TRACEX macros is sent to stderr. */ 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat ) 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat ) 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat ) 160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat ) 161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat ) 162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat ) 163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat ) 164049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat ) 165049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 166049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Define the FT_ERROR macro. */ 170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Output of this macro is sent to stderr. */ 172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 173049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 174049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 175049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_ERROR 176049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 177049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ERROR( varformat ) FT_Message varformat 178049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 179049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else /* !FT_DEBUG_LEVEL_ERROR */ 180049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 1810a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_ERROR( varformat ) do { } while ( 0 ) /* nothing */ 182049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 183049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_DEBUG_LEVEL_ERROR */ 184049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 185049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 186049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 187049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 188a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* Define the FT_ASSERT and FT_THROW macros. The call to `FT_Throw' */ 189a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* makes it possible to easily set a breakpoint at this function. */ 190049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 191049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 192049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 193049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_ERROR 194049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 195049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define FT_ASSERT( condition ) \ 196049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project do \ 197049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { \ 198049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project if ( !( condition ) ) \ 199049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Panic( "assertion failed on line %d of file %s\n", \ 200049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project __LINE__, __FILE__ ); \ 201049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } while ( 0 ) 202049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 203a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_THROW( e ) \ 204a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \ 205a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang __LINE__, \ 206a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang __FILE__ ) | \ 207a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_ERR_CAT( FT_ERR_PREFIX, e ) ) 208a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 209049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#else /* !FT_DEBUG_LEVEL_ERROR */ 210049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 2110a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project#define FT_ASSERT( condition ) do { } while ( 0 ) 212049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 213a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e ) 214a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 215049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* !FT_DEBUG_LEVEL_ERROR */ 216049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 217049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 218049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 219049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 220049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Define `FT_Message' and `FT_Panic' when needed. */ 221049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 222049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 223049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 224049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FT_DEBUG_LEVEL_ERROR 225049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 226049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "stdio.h" /* for vfprintf() */ 227049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 228049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* print a message */ 229049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BASE( void ) 230049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Message( const char* fmt, 231049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ... ); 232049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 233049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* print a message and exit */ 234049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BASE( void ) 235049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Panic( const char* fmt, 236049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ... ); 237049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 238a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* report file name and line number of an error */ 239a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_BASE( int ) 240a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Throw( FT_Error error, 241a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang int line, 242a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang const char* file ); 243a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 244049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* FT_DEBUG_LEVEL_ERROR */ 245049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 246049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 247049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_BASE( void ) 248049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project ft_debug_init( void ); 249049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 250049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 251049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 252049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 253049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTDEBUG_H__ */ 254049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 255049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 256049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 257