[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/6] error: Add error_abort
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/6] error: Add error_abort |
Date: |
Thu, 05 Dec 2013 06:21:52 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 |
On 12/05/2013 03:13 AM, Markus Armbruster wrote:
>>
>> For error_propagate, if the destination error is &error_abort, then
>> the abort happens at propagation time.
>>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
>> ---
>> changed since v1:
>> Delayed assertions that *errp == NULL.
>
> Care to explain why you want to delay these assertions? I'm not sure I
> get it...
error_abort as a global variable is always NULL.
>
> [...]
>> @@ -31,7 +33,6 @@ void error_set(Error **errp, ErrorClass err_class, const
>> char *fmt, ...)
>> if (errp == NULL) {
>> return;
>> }
>> - assert(*errp == NULL);
So *&error_abort is null and this assertion would fire, unless we delay
the check for NULL...
>>
>> err = g_malloc0(sizeof(*err));
>>
>> @@ -40,6 +41,12 @@ void error_set(Error **errp, ErrorClass err_class, const
>> char *fmt, ...)
>> va_end(ap);
>> err->err_class = err_class;
>>
>> + if (errp == &error_abort) {
>> + error_report("%s", error_get_pretty(err));
>> + abort();
>> + }
>> +
>> + assert(*errp == NULL);
...until after the check for &error_abort.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
[Qemu-devel] [PATCH v2 2/6] hw/core/qdev: Delete dead code, Peter Crosthwaite, 2013/12/04
[Qemu-devel] [PATCH v2 3/6] hw: Remove assert_no_error usages, Peter Crosthwaite, 2013/12/04
[Qemu-devel] [PATCH v2 4/6] target-i386: Remove assert_no_error usage, Peter Crosthwaite, 2013/12/04
[Qemu-devel] [PATCH v2 5/6] qemu-option: Remove qemu_opts_create_nofail, Peter Crosthwaite, 2013/12/04
[Qemu-devel] [PATCH v2 6/6] qerror: Remove assert_no_error(), Peter Crosthwaite, 2013/12/04