61 #define MaxExceptionList 64 66 #if defined(__cplusplus) || defined(c_plusplus) 75 #if defined(__cplusplus) || defined(c_plusplus) 156 if (p->
reason != (
char *) NULL)
161 return((
void *) NULL);
174 exception->
reason=(
char *) NULL;
267 return(clone_exception);
299 const char *reason,
const char *description)
303 if (reason == (
char *) NULL)
306 if (description != (
char *) NULL)
309 (void) fflush(stderr);
341 const char *reason,
const char *description)
343 if (reason == (
char *) NULL)
346 if (description != (
char *) NULL)
349 (void) fflush(stderr);
383 const char *reason,
const char *description)
387 if (reason == (
char *) NULL)
390 if (description != (
char *) NULL)
393 (void) fflush(stderr);
531 #if defined(MAGICKCORE_HAVE_STRERROR_R) 532 #if !defined(MAGICKCORE_STRERROR_R_CHAR_P) 533 (void) strerror_r(error,exception,
sizeof(exception));
536 sizeof(exception)),
sizeof(exception));
652 assert(tag != (
const char *) NULL);
656 if (locale_message == (
const char *) NULL)
658 if (locale_message == message)
660 return(locale_message);
697 assert(exception != relative);
738 (void) memset(exception,0,
sizeof(*exception));
774 const char *description)
777 (*error_handler)(error,reason,description);
810 const char *description)
813 (*fatal_error_handler)(error,reason,description);
844 const char *description)
847 (*warning_handler)(warning,reason,description);
884 return(previous_handler);
921 return(previous_handler);
958 return(previous_handler);
993 const ExceptionType severity,
const char *reason,
const char *description)
1033 (void) memset(p,0,
sizeof(*p));
1035 if (reason != (
const char *) NULL)
1037 if (description != (
const char *) NULL)
1051 "(exception processing is suspended)");
1096 const size_t line,
const ExceptionType severity,
const char *tag,
1097 const char *format,va_list operands)
1122 length=strlen(reason);
1123 #if defined(MAGICKCORE_HAVE_VSNPRINTF) 1126 n=vsprintf(reason+length,format,operands);
1140 reason,type,path,
function,(
double) line);
1146 const char *
module,
const char *
function,
const size_t line,
1147 const ExceptionType severity,
const char *tag,
const char *format,...)
1155 va_start(operands,format);
MagickPrivate MagickBooleanType ExceptionComponentGenesis(void)
MagickExport ExceptionInfo * CloneExceptionInfo(ExceptionInfo *exception)
MagickExport size_t ConcatenateMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
MagickExport void UnlockSemaphoreInfo(SemaphoreInfo *semaphore_info)
static void DefaultErrorHandler(const ExceptionType, const char *, const char *)
MagickExport void ResetLinkedListIterator(LinkedListInfo *list_info)
MagickPrivate void ExceptionComponentTerminus(void)
#define ThrowFatalException(severity, tag)
static ErrorHandler error_handler
MagickExport LinkedListInfo * DestroyLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
MagickExport void MagickCoreTerminus(void)
MagickExport SemaphoreInfo * AcquireSemaphoreInfo(void)
MagickExport void MagickError(const ExceptionType error, const char *reason, const char *description)
MagickExport WarningHandler SetWarningHandler(WarningHandler handler)
MagickExport void MagickWarning(const ExceptionType warning, const char *reason, const char *description)
static void DefaultWarningHandler(const ExceptionType, const char *, const char *)
MagickExport ExceptionInfo * AcquireExceptionInfo(void)
MagickExport MagickBooleanType AppendValueToLinkedList(LinkedListInfo *list_info, const void *value)
MagickExport ssize_t FormatLocaleString(char *magick_restrict string, const size_t length, const char *magick_restrict format,...)
MagickExport size_t CopyMagickString(char *magick_restrict destination, const char *magick_restrict source, const size_t length)
MagickExport char * GetExceptionMessage(const int error)
static FatalErrorHandler fatal_error_handler
MagickExport void * GetNextValueInLinkedList(LinkedListInfo *list_info)
#define MagickCoreSignature
void(* FatalErrorHandler)(const ExceptionType, const char *, const char *)
MagickExport void LockSemaphoreInfo(SemaphoreInfo *semaphore_info)
MagickExport MagickBooleanType ThrowMagickExceptionList(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format, va_list operands)
MagickExport MagickBooleanType ThrowException(ExceptionInfo *exception, const ExceptionType severity, const char *reason, const char *description)
MagickExport void GetPathComponent(const char *path, PathType type, char *component)
static WarningHandler warning_handler
MagickExport ssize_t FormatLocaleFile(FILE *file, const char *magick_restrict format,...)
MagickExport ErrorHandler SetErrorHandler(ErrorHandler handler)
MagickExport void * AcquireCriticalMemory(const size_t size)
SemaphoreInfo * semaphore
MagickExport void * GetLastValueInLinkedList(LinkedListInfo *list_info)
static void * DestroyExceptionElement(void *exception)
MagickExport MagickBooleanType ThrowMagickException(ExceptionInfo *exception, const char *module, const char *function, const size_t line, const ExceptionType severity, const char *tag, const char *format,...)
MagickExport MagickBooleanType LogMagickEvent(const LogEventType type, const char *module, const char *function, const size_t line, const char *format,...)
MagickExport FatalErrorHandler SetFatalErrorHandler(FatalErrorHandler handler)
void(* WarningHandler)(const ExceptionType, const char *, const char *)
MagickExport LinkedListInfo * NewLinkedList(const size_t capacity)
MagickExport void CatchException(ExceptionInfo *exception)
static SemaphoreInfo * exception_semaphore
MagickExport const char * GetClientName(void)
MagickExport int LocaleCompare(const char *p, const char *q)
#define GetMagickModule()
MagickExport void ClearMagickException(ExceptionInfo *exception)
MagickExport const char * GetLocaleMessage(const char *tag)
MagickExport char * DestroyString(char *string)
MagickExport void ClearLinkedList(LinkedListInfo *list_info, void *(*relinquish_value)(void *))
MagickExport void * AcquireMagickMemory(const size_t size)
MagickExport void ActivateSemaphoreInfo(SemaphoreInfo **semaphore_info)
MagickExport size_t GetNumberOfElementsInLinkedList(const LinkedListInfo *list_info)
MagickPrivate void InitializeExceptionInfo(ExceptionInfo *exception)
MagickExport void * RelinquishMagickMemory(void *memory)
#define magick_unreferenced(x)
static const char * ExceptionSeverityToTag(const ExceptionType severity)
void(* ErrorHandler)(const ExceptionType, const char *, const char *)
MagickExport const char * GetLocaleExceptionMessage(const ExceptionType severity, const char *tag)
static void DefaultFatalErrorHandler(const ExceptionType, const char *, const char *)
MagickExport void RelinquishSemaphoreInfo(SemaphoreInfo **semaphore_info)
MagickExport void MagickFatalError(const ExceptionType error, const char *reason, const char *description)
MagickExport char * ConstantString(const char *source)
MagickBooleanType relinquish
MagickExport ExceptionInfo * DestroyExceptionInfo(ExceptionInfo *exception)
MagickExport void InheritException(ExceptionInfo *exception, const ExceptionInfo *relative)