void object_property_add_str(Object *obj, const char *name,

                           char *(*get)(Object *, Error **),

                           void (*set)(Object *, const char *, Error **),

                           Error **errp)

{

    StringProperty *prop = g_malloc0(sizeof(*prop));



    prop->get = get;

    prop->set = set;



    object_property_add(obj, name, "string",

                        get ? property_get_str : NULL,

                        set ? property_set_str : NULL,

                        property_release_str,

                        prop, errp);

}

void object_property_add_str(Object *obj, const char *name,

                           char *(*get)(Object *, Error **),

                           void (*set)(Object *, const char *, Error **),

                           Error **errp)

{

    StringProperty *prop = g_malloc0(sizeof(*prop));



    prop->get = get;

    prop->set = set;



    object_property_add(obj, name, "string",

                        get ? property_get_str : NULL,

                        set ? property_set_str : NULL,

                        property_release_str,

                        prop, errp);

}

                        prop, errp);                         prop, errp);
VAR_5voidVAR_5 VAR_5object_property_add_strVAR_5(VAR_5ObjectVAR_5 *VAR_5VAR_0VAR_5, VAR_5constVAR_5 VAR_5charVAR_5 *VAR_5VAR_1VAR_5,

                           VAR_5charVAR_5 *(*VAR_5VAR_2VAR_5)(VAR_5ObjectVAR_5 *, VAR_5ErrorVAR_5 **),

                           VAR_5voidVAR_5 (*VAR_5setVAR_5)(VAR_5ObjectVAR_5 *, VAR_5constVAR_5 VAR_5charVAR_5 *, VAR_5ErrorVAR_5 **),

                           VAR_5ErrorVAR_5 **VAR_5errpVAR_5)

{

    VAR_5StringPropertyVAR_5 *VAR_5propVAR_5 = VAR_5g_malloc0VAR_5(VAR_5sizeofVAR_5(*VAR_5propVAR_5));



    VAR_5propVAR_5->VAR_5VAR_2VAR_5 = VAR_5VAR_2VAR_5;

    VAR_5propVAR_5->VAR_5setVAR_5 = VAR_5setVAR_5;



    VAR_5object_property_addVAR_5(VAR_5VAR_0VAR_5, VAR_5VAR_1VAR_5, "VAR_5stringVAR_5",

                        VAR_5VAR_2VAR_5 ? VAR_5property_get_strVAR_5 : VAR_5NULLVAR_5,

                        VAR_5setVAR_5 ? VAR_5property_set_strVAR_5 : VAR_5NULLVAR_5,

                        VAR_5property_release_strVAR_5,

                        VAR_5propVAR_5, VAR_5errpVAR_5);

}

VAR_5voidVAR_5 VAR_5object_property_add_strVAR_5(VAR_5ObjectVAR_5 *VAR_5VAR_0VAR_5, VAR_5constVAR_5 VAR_5charVAR_5 *VAR_5VAR_1VAR_5,
VAR_5charVAR_5 *(*VAR_5VAR_2VAR_5)(VAR_5ObjectVAR_5 *, VAR_5ErrorVAR_5 **),
VAR_5voidVAR_5 (*VAR_5setVAR_5)(VAR_5ObjectVAR_5 *, VAR_5constVAR_5 VAR_5charVAR_5 *, VAR_5ErrorVAR_5 **),
VAR_5ErrorVAR_5 **VAR_5errpVAR_5)
{ VAR_5StringPropertyVAR_5 *VAR_5propVAR_5 = VAR_5g_malloc0VAR_5(VAR_5sizeofVAR_5(*VAR_5propVAR_5)); VAR_5propVAR_5->VAR_5VAR_2VAR_5 = VAR_5VAR_2VAR_5; VAR_5propVAR_5->VAR_5setVAR_5 = VAR_5setVAR_5; VAR_5object_property_addVAR_5(VAR_5VAR_0VAR_5, VAR_5VAR_1VAR_5, "VAR_5stringVAR_5",
VAR_5VAR_2VAR_5 ? VAR_5property_get_strVAR_5 : VAR_5NULLVAR_5,
VAR_5setVAR_5 ? VAR_5property_set_strVAR_5 : VAR_5NULLVAR_5,
VAR_5property_release_strVAR_5,
VAR_5propVAR_5, VAR_5errpVAR_5); }