"Dr. David Alan Gilbert" <dgilb...@redhat.com> writes: > * Markus Armbruster (arm...@redhat.com) wrote: >> "Dr. David Alan Gilbert" <dgilb...@redhat.com> writes: >> >> > * Markus Armbruster (arm...@redhat.com) wrote: >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> >> Reviewed-by: Eric Blake <ebl...@redhat.com> >> >> --- >> >> include/qapi/error.h | 177 >> >> ++++++++++++++++++++++++++++++++++++--------------- >> >> 1 file changed, 127 insertions(+), 50 deletions(-) >> >> >> >> diff --git a/include/qapi/error.h b/include/qapi/error.h >> >> index 8c3a7dd..7d808e8 100644 >> >> --- a/include/qapi/error.h >> >> +++ b/include/qapi/error.h >> >> @@ -2,13 +2,75 @@ >> >> * QEMU Error Objects >> >> * >> >> * Copyright IBM, Corp. 2011 >> >> + * Copyright (C) 2011-2015 Red Hat, Inc. >> >> * >> >> * Authors: >> >> * Anthony Liguori <aligu...@us.ibm.com> >> >> + * Markus Armbruster <arm...@redhat.com> >> >> * >> >> * This work is licensed under the terms of the GNU LGPL, version 2. See >> >> * the COPYING.LIB file in the top-level directory. >> >> */ >> >> + >> >> +/* >> >> + * Error reporting system loosely patterned after Glib's GError. >> > >> > Excellent; it's great to have this documented. >> >> Thanks! >> >> > Do we have a note anywhere that says why we don't just use GError? >> >> I'm not aware of such a note, and I don't know / remember why we didn't >> use GError. Perhaps one of the guys signing off the initial commit >> does (cc'ing them): >> >> commit d5ec4f27c387c3b3200abb8656343b2519ea3047 >> Author: Luiz Capitulino <lcapitul...@redhat.com> >> Date: Wed Jun 1 12:14:49 2011 -0500 >> >> Introduce the new error framework >> >> New error-handling framework that allows for exception-like error >> propagation. >> >> Signed-off-by: Luiz Capitulino <lcapitul...@redhat.com> >> Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> >> Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> >> >> Here's a possible clue: >> >> GLib is an extremely common library that has a portable thread >> implementatiocommit e18df14185e817ba735bce57ecdef9a55fb3d093 >> Author: Anthony Liguori <aligu...@us.ibm.com> >> Date: Tue Jul 19 14:50:29 2011 -0500 >> >> Add hard build dependency on glib >> [...] >> Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> >> Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> >> Signed-off-by: Luiz Capitulino <lcapitul...@gmail.com> >> >> Error predates our use of GLib. > > By a month!
"Knapp vorbei ist auch daneben." > Are there semantics close enough that we could typedef Error to GError and > then > slowly replace the use of our functions with standard glib calls? > > It would just end up as one chunk less of code to maintain, and > something that new people wouldn't have to learn if they already new glib. There are obvious differences: * GError uses (GQuark domain, gint code), we use ErrorClass (and regret it). * GError lacks &error_abort. * In g_propagate_error(&dest, src), dest must be null. error_propagate() throws away src then. * More subtle differences may well exist. Can't say offhand whether the obvious differences plus the ones I might be missing make replacement impractical. Can say that my appetite for tree-wide cleanups has limits %-} error.[ch] weigh in at 167 SLOC. Includes convenience function we'd have to carry forward to GError.