Skip to content
  • Markus Armbruster's avatar
    3e7fb581
    qapi: Fix code generation for empty modules · 3e7fb581
    Markus Armbruster authored
    
    
    When a sub-module doesn't contain any definitions, we don't generate
    code for it, but we do generate the #include.
    
    We generate code only for modules that get visited.
    QAPISchema.visit() visits only modules that have definitions.  It can
    visit modules multiple times.
    
    Clean this up as follows.  Collect entities in their QAPISchemaModule.
    Have QAPISchema.visit() call QAPISchemaModule.visit() for each module.
    Have QAPISchemaModule.visit() call .visit_module() for itself, and
    QAPISchemaEntity.visit() for each of its entities.  This way, we visit
    each module exactly once.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20191120182551.23795-6-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    3e7fb581
    qapi: Fix code generation for empty modules
    Markus Armbruster authored
    
    
    When a sub-module doesn't contain any definitions, we don't generate
    code for it, but we do generate the #include.
    
    We generate code only for modules that get visited.
    QAPISchema.visit() visits only modules that have definitions.  It can
    visit modules multiple times.
    
    Clean this up as follows.  Collect entities in their QAPISchemaModule.
    Have QAPISchema.visit() call QAPISchemaModule.visit() for each module.
    Have QAPISchemaModule.visit() call .visit_module() for itself, and
    QAPISchemaEntity.visit() for each of its entities.  This way, we visit
    each module exactly once.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Message-Id: <20191120182551.23795-6-armbru@redhat.com>
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Loading