Skip to content
  • Markus Armbruster's avatar
    118bfd76
    qdev: Use returned bool to check for qdev_realize() etc. failure · 118bfd76
    Markus Armbruster authored
    
    
    Convert
    
        foo(..., &err);
        if (err) {
            ...
        }
    
    to
    
        if (!foo(..., &err)) {
            ...
        }
    
    for qdev_realize(), qdev_realize_and_unref(), qbus_realize() and their
    wrappers isa_realize_and_unref(), pci_realize_and_unref(),
    sysbus_realize(), sysbus_realize_and_unref(), usb_realize_and_unref().
    Coccinelle script:
    
        @@
        identifier fun = {
            isa_realize_and_unref, pci_realize_and_unref, qbus_realize,
            qdev_realize, qdev_realize_and_unref, sysbus_realize,
            sysbus_realize_and_unref, usb_realize_and_unref
        };
        expression list args, args2;
        typedef Error;
        Error *err;
        @@
        -    fun(args, &err, args2);
        -    if (err)
        +    if (!fun(args, &err, args2))
             {
                 ...
             }
    
    Chokes on hw/arm/musicpal.c's lcd_refresh() with the unhelpful error
    message "no position information".  Nothing to convert there; skipped.
    
    Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by
    ARMSSE being used both as typedef and function-like macro there.
    Converted manually.
    
    A few line breaks tidied up manually.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Reviewed-by: default avatarGreg Kurz <groug@kaod.org>
    Message-Id: <20200707160613.848843-5-armbru@redhat.com>
    118bfd76
    qdev: Use returned bool to check for qdev_realize() etc. failure
    Markus Armbruster authored
    
    
    Convert
    
        foo(..., &err);
        if (err) {
            ...
        }
    
    to
    
        if (!foo(..., &err)) {
            ...
        }
    
    for qdev_realize(), qdev_realize_and_unref(), qbus_realize() and their
    wrappers isa_realize_and_unref(), pci_realize_and_unref(),
    sysbus_realize(), sysbus_realize_and_unref(), usb_realize_and_unref().
    Coccinelle script:
    
        @@
        identifier fun = {
            isa_realize_and_unref, pci_realize_and_unref, qbus_realize,
            qdev_realize, qdev_realize_and_unref, sysbus_realize,
            sysbus_realize_and_unref, usb_realize_and_unref
        };
        expression list args, args2;
        typedef Error;
        Error *err;
        @@
        -    fun(args, &err, args2);
        -    if (err)
        +    if (!fun(args, &err, args2))
             {
                 ...
             }
    
    Chokes on hw/arm/musicpal.c's lcd_refresh() with the unhelpful error
    message "no position information".  Nothing to convert there; skipped.
    
    Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by
    ARMSSE being used both as typedef and function-like macro there.
    Converted manually.
    
    A few line breaks tidied up manually.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
    Reviewed-by: default avatarGreg Kurz <groug@kaod.org>
    Message-Id: <20200707160613.848843-5-armbru@redhat.com>
Loading