GError * oio_error_debug (GQuark gq, int code, const char *fmt, ...) { void *frames[STACK_MAX]; int nbframes = backtrace(frames, STACK_MAX); GString *gs = g_string_new(""); char **strv = backtrace_symbols (frames, nbframes); if (strv) { for (int i=1; i<nbframes ;i++) { if (gs->len) g_string_append (gs, ","); char *s, *start = strv[i]; if (NULL != (s = strchr(start, '('))) start = s+1; if (NULL != (s = strchr(start, '+'))) *s = 0; if (NULL != (s = strchr(start, ')'))) *s = 0; g_string_append (gs, start); } free (strv); } va_list args; va_start (args, fmt); GError *err = g_error_new_valist (gq, code, fmt, args); va_end (args); g_prefix_error (&err, "[%s] ", gs->str); g_string_free (gs, TRUE); return err; }
static void parser_error(GError **error, const char *fmt, ...) { va_list args; if (!error) return; va_start(args, fmt); *error = g_error_new_valist(g_quark_from_string("subsurface"), DIVE_ERROR_PARSE, fmt, args); va_end(args); }
static inline void fill_error(GError ** error, const gchar * fmt, ...) { if (error == NULL) { return; } va_list vl; va_start(vl, fmt); *error = g_error_new_valist(1, 1, fmt, vl); va_end(vl); }
static GError *error(const char *fmt, ...) { va_list args; GError *error; va_start(args, fmt); error = g_error_new_valist( g_quark_from_string("subsurface"), DIVE_ERROR_PARSE, fmt, args); va_end(args); return error; }
void gfio_report_error(struct gui_entry *ge, const char *format, ...) { va_list args; GError *error; va_start(args, format); error = g_error_new_valist(g_quark_from_string("fio"), 1, format, args); va_end(args); report_error(ge, error); g_error_free(error); }
void mc_propagate_error (GError ** dest, int code, const char *format, ...) { if (dest != NULL && *dest == NULL) { GError *tmp_error; va_list args; va_start (args, format); tmp_error = g_error_new_valist (MC_ERROR, code, format, args); va_end (args); g_propagate_error (dest, tmp_error); } }
void fb_mqtt_error(FbMqtt *mqtt, FbMqttError error, const gchar *format, ...) { GError *err; va_list ap; g_return_if_fail(FB_IS_MQTT(mqtt)); va_start(ap, format); err = g_error_new_valist(FB_MQTT_ERROR, error, format, ap); va_end(ap); g_signal_emit_by_name(mqtt, "error", err); g_error_free(err); }
static void gabble_server_sasl_channel_raise (DBusGMethodInvocation *context, TpError code, const gchar *message, ...) { va_list ap; GError *error = NULL; va_start (ap, message); error = g_error_new_valist (TP_ERRORS, code, message, ap); va_end (ap); dbus_g_method_return_error (context, error); g_error_free (error); }
static void mbpi_g_set_error(GMarkupParseContext *context, GError **error, GQuark domain, gint code, const gchar *fmt, ...) { va_list ap; gint line_number, char_number; g_markup_parse_context_get_position(context, &line_number, &char_number); va_start(ap, fmt); *error = g_error_new_valist(domain, code, fmt, ap); va_end(ap); g_prefix_error(error, "%s:%d ", MBPI_DATABASE, line_number); }
void _gtk_css_parser_error_full (GtkCssParser *parser, GtkCssProviderError code, const char *format, ...) { GError *error; va_list args; va_start (args, format); error = g_error_new_valist (GTK_CSS_PROVIDER_ERROR, code, format, args); va_end (args); _gtk_css_parser_take_error (parser, error); }
/** * g_error_new: * @domain: error domain * @code: error code * @format: printf()-style format for error message * @...: parameters for message format * * Creates a new #GError with the given @domain and @code, * and a message formatted with @format. * * Return value: a new #GError */ GError* g_error_new (GQuark domain, gint code, const gchar *format, ...) { GError* error; va_list args; g_return_val_if_fail (format != NULL, NULL); g_return_val_if_fail (domain != 0, NULL); va_start (args, format); error = g_error_new_valist (domain, code, format, args); va_end (args); return error; }
void g_set_error (GError **err, GQuark domain, gint code, const gchar *format, ...) { va_list args; if (err == NULL) return; if (*err != NULL) g_warning ("GError set over the top of a previous GError or uninitialized memory.\n" "This indicates a bug in someone's code. You must ensure an error is NULL before it's set."); va_start (args, format); *err = g_error_new_valist (domain, code, format, args); va_end (args); }