Commit a8aec6de authored by Markus Armbruster's avatar Markus Armbruster
Browse files

qapi: Drop string input visitor method optional()



visit_optional() is to be called only between visit_start_struct() and
visit_end_struct().  Visitors that don't support struct visits,
i.e. don't implement start_struct(), end_struct(), have no use for it.
Clarify documentation.

The string input visitor doesn't support struct visits.  Its
parse_optional() is therefore useless.  Drop it.

Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Message-Id: <1488544368-30622-16-git-send-email-armbru@redhat.com>
parent a9fc37f6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -102,8 +102,8 @@ struct Visitor
    /* Must be set to visit explicit null values.  */
    void (*type_null)(Visitor *v, const char *name, Error **errp);

    /* Must be set for input visitors, optional otherwise.  The core
     * takes care of the return type in the public interface. */
    /* Must be set for input visitors to visit structs, optional otherwise.
       The core takes care of the return type in the public interface. */
    void (*optional)(Visitor *v, const char *name, bool *present);

    /* Must be set */
+0 −13
Original line number Diff line number Diff line
@@ -314,18 +314,6 @@ static void parse_type_number(Visitor *v, const char *name, double *obj,
    *obj = val;
}

static void parse_optional(Visitor *v, const char *name, bool *present)
{
    StringInputVisitor *siv = to_siv(v);

    if (!siv->string) {
        *present = false;
        return;
    }

    *present = true;
}

static void string_input_free(Visitor *v)
{
    StringInputVisitor *siv = to_siv(v);
@@ -351,7 +339,6 @@ Visitor *string_input_visitor_new(const char *str)
    v->visitor.start_list = start_list;
    v->visitor.next_list = next_list;
    v->visitor.end_list = end_list;
    v->visitor.optional = parse_optional;
    v->visitor.free = string_input_free;

    v->string = str;