qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH v1 2/5] hw: Remove assert_no_error usages


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [RFC PATCH v1 2/5] hw: Remove assert_no_error usages
Date: Tue, 3 Dec 2013 20:04:21 +1000

On Tue, Dec 3, 2013 at 7:35 PM, Markus Armbruster <address@hidden> wrote:
> Peter Crosthwaite <address@hidden> writes:
>
>> Replace assert_no_error() usages with the error_abort system.
>> &error_abort is passed into API calls to signal to the Error sub-system
>> that any errors are fatal. Removes need for caller assertions.
>>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
> [...]
>> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
>> index e374a93..7d869fc 100644
>> --- a/hw/core/qdev.c
>> +++ b/hw/core/qdev.c
> [...]
>> @@ -739,31 +737,19 @@ static void device_initfn(Object *obj)
>>      class = object_get_class(OBJECT(dev));
>>      do {
>>          for (prop = DEVICE_CLASS(class)->props; prop && prop->name; prop++) 
>> {
>> -            qdev_property_add_legacy(dev, prop, &err);
>> -            assert_no_error(err);
>> -            qdev_property_add_static(dev, prop, &err);
>> -            assert_no_error(err);
>> +            qdev_property_add_legacy(dev, prop, &error_abort);
>> +            qdev_property_add_static(dev, prop, &error_abort);
>>          }
>>          class = object_class_get_parent(class);
>>      } while (class != object_class_by_name(TYPE_DEVICE));
>> -    if (err != NULL) {
>> -        qerror_report_err(err);
>> -        error_free(err);
>> -        exit(1);
>> -    }
>
> Removal of these five lines isn't about replacing assert_no_error(),
> it's burying dead code: err is initialized to null, and every place
> where err can be set is followed by an assert_no_error(), therefore err
> must still be null here.  Correct?
>

Correct, it's dead code.

>>
>>      object_property_add_link(OBJECT(dev), "parent_bus", TYPE_BUS,
>> -                             (Object **)&dev->parent_bus, &err);
>> -    assert_no_error(err);
>> +                             (Object **)&dev->parent_bus, &error_abort);
>>  }
>>
>>  static void device_post_init(Object *obj)
>>  {
>> -    DeviceState *dev = DEVICE(obj);
>> -    Error *err = NULL;
>> -
>> -    qdev_prop_set_globals(dev, &err);
>> -    assert_no_error(err);
>> +    qdev_prop_set_globals(DEVICE(obj), &error_abort);
>>  }
>>
>>  /* Unlink device from bus and free the structure.  */
>> diff --git a/hw/dma/xilinx_axidma.c b/hw/dma/xilinx_axidma.c
>> index d67c5f1..bb92e41 100644
>> --- a/hw/dma/xilinx_axidma.c
>> +++ b/hw/dma/xilinx_axidma.c
>> @@ -569,26 +569,21 @@ static void xilinx_axidma_init(Object *obj)
>>  {
>>      XilinxAXIDMA *s = XILINX_AXI_DMA(obj);
>>      SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
>> -    Error *errp = NULL;
>>
>>      object_property_add_link(obj, "axistream-connected", TYPE_STREAM_SLAVE,
>> -                             (Object **) &s->tx_data_dev, &errp);
>> -    assert_no_error(errp);
>> +                             (Object **) &s->tx_data_dev, &error_abort);
>
> You could use the opportunity and drop the space between cast and its
> operand, for consistency with the other casts around here.  No need to
> respin just for that, of course.
>

Will fix on respin.

Regards,
Peter

> [...]
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]