pike.git / src / error.c

version» Context lines:

pike.git/src/error.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: error.c,v 1.160 2008/05/27 18:50:44 mast Exp $ + || $Id: error.c,v 1.161 2008/05/27 19:10:33 grubba Exp $   */      #define NO_PIKE_SHORTHAND   #include "global.h"   #include "svalue.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "interpret.h"   #include "stralloc.h"   #include "builtin_functions.h"
pike.git/src/error.c:926:   #define INIT_ERROR(FEL)\    va_list foo; \    struct object *o; \    va_start(foo,desc); \    ASSERT_THREAD_SWAPPED_IN(); \    o=low_clone(PIKE_CONCAT(FEL,_error_program)); \    DWERROR((stderr, "%s(): Throwing a " #FEL " error\n", func))      #define ERROR_DONE(FOO) \    PIKE_CONCAT(FOO,_error_va(o,func, \ -  base_sp, args, \ -  desc,foo)); \ +  base_sp, args, \ +  desc, &foo)); \    va_end(foo)      #define ERROR_STRUCT(STRUCT,O) \    ((struct PIKE_CONCAT(STRUCT,_error_struct) *)((O)->storage + PIKE_CONCAT(STRUCT,_error_offset)))      #define ERROR_COPY(STRUCT,X) \    ERROR_STRUCT(STRUCT,o)->X=X      #define ERROR_COPY_SVALUE(STRUCT,X) do { \    if (X) { \
pike.git/src/error.c:969:    *    * o If fmt is specified, an error message is created from it and    * fmt_args using string_builder_vsprintf. (fmt_args is passed as a    * va_list pointer to be able to pass NULL if fmt is NULL.)    *    * Note: error_message and error_backtrace are not freed before being    * assigned.    */   PMOD_EXPORT DECLSPEC(noreturn) void generic_error_va(    struct object *o, const char *func, const struct svalue *base_sp, int args, -  const char *fmt, va_list fmt_args) +  const char *fmt, va_list *fmt_args)   {    struct generic_error_struct *err =    (struct generic_error_struct *) get_storage (o, generic_error_program);      #ifdef PIKE_DEBUG    if (!err)    Pike_fatal ("Got an object which doesn't inherit generic_error_program.\n");   #endif       if(in_error)    {    const char *tmp=in_error;    in_error=0; -  Pike_fatal("Recursive error() calls, original error: %s",tmp); +  Pike_fatal("Recursive error() calls, original error: %s", tmp);    }    in_error = fmt ? fmt : "no error message";       if (fmt) {    struct string_builder s;    init_string_builder(&s, 0); -  string_builder_vsprintf(&s, fmt, fmt_args); +  string_builder_vsprintf(&s, fmt, *fmt_args);      #if 0    if (!master_program) {    fprintf(stderr, "ERROR: %s\n", s.s->str);    }   #endif       err->error_message = finish_string_builder(&s);    }