Skip to content
  • Markus Armbruster's avatar
    778a2dc5
    qom: Use returned bool to check for failure, Coccinelle part · 778a2dc5
    Markus Armbruster authored
    
    
    The previous commit enables conversion of
    
        foo(..., &err);
        if (err) {
            ...
        }
    
    to
    
        if (!foo(..., errp)) {
            ...
        }
    
    for QOM functions that now return true / false on success / error.
    Coccinelle script:
    
        @@
        identifier fun = {
            object_apply_global_props, object_initialize_child_with_props,
            object_initialize_child_with_propsv, object_property_get,
            object_property_get_bool, object_property_parse, object_property_set,
            object_property_set_bool, object_property_set_int,
            object_property_set_link, object_property_set_qobject,
            object_property_set_str, object_property_set_uint, object_set_props,
            object_set_propv, user_creatable_add_dict,
            user_creatable_complete, user_creatable_del
        };
        expression list args, args2;
        typedef Error;
        Error *err;
        @@
        -    fun(args, &err, args2);
        -    if (err)
        +    if (!fun(args, &err, args2))
             {
                 ...
             }
    
    Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by
    ARMSSE being used both as typedef and function-like macro there.
    Convert manually.
    
    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>
    Message-Id: <20200707160613.848843-29-armbru@redhat.com>
    778a2dc5
    qom: Use returned bool to check for failure, Coccinelle part
    Markus Armbruster authored
    
    
    The previous commit enables conversion of
    
        foo(..., &err);
        if (err) {
            ...
        }
    
    to
    
        if (!foo(..., errp)) {
            ...
        }
    
    for QOM functions that now return true / false on success / error.
    Coccinelle script:
    
        @@
        identifier fun = {
            object_apply_global_props, object_initialize_child_with_props,
            object_initialize_child_with_propsv, object_property_get,
            object_property_get_bool, object_property_parse, object_property_set,
            object_property_set_bool, object_property_set_int,
            object_property_set_link, object_property_set_qobject,
            object_property_set_str, object_property_set_uint, object_set_props,
            object_set_propv, user_creatable_add_dict,
            user_creatable_complete, user_creatable_del
        };
        expression list args, args2;
        typedef Error;
        Error *err;
        @@
        -    fun(args, &err, args2);
        -    if (err)
        +    if (!fun(args, &err, args2))
             {
                 ...
             }
    
    Fails to convert hw/arm/armsse.c, because Coccinelle gets confused by
    ARMSSE being used both as typedef and function-like macro there.
    Convert manually.
    
    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>
    Message-Id: <20200707160613.848843-29-armbru@redhat.com>
Loading