0b9d8542 | 19-Sep-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: dealloc visitor, support freeing of nested lists
Previously our logic for keeping track of when we're visiting the head of a list was done via a global bool. This can be overwritten if dealing
qapi: dealloc visitor, support freeing of nested lists
Previously our logic for keeping track of when we're visiting the head of a list was done via a global bool. This can be overwritten if dealing with nested lists, so use stack entries to track this instead.
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
show more ...
|
5666dd19 | 15-Sep-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: dealloc visitor, fix premature free and iteration logic
Currently we do 3 things wrong:
1) The list iterator, in practice, is used in a manner where the pointer we pass in is the same as the
qapi: dealloc visitor, fix premature free and iteration logic
Currently we do 3 things wrong:
1) The list iterator, in practice, is used in a manner where the pointer we pass in is the same as the pointer we assign the output to from visit_next_list(). This causes an infinite loop where we keep freeing the same structures.
2) We attempt to free list->value rather than list. visit_type_<type> handles this. We should only be concerned with the containing list.
3) We free prematurely: iterator function will continue accessing values we've already freed.
This patch should fix all of these issues. QmpOutputVisitor also suffers from 1).
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
show more ...
|
ab02ab2a | 19-Jul-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: add QMP dispatch functions
Given an object recieved via QMP, this code uses the dispatch table provided by qmp_registry.c to call the corresponding marshalling/dispatch function and format ret
qapi: add QMP dispatch functions
Given an object recieved via QMP, this code uses the dispatch table provided by qmp_registry.c to call the corresponding marshalling/dispatch function and format return values/errors for delivery to the QMP. Currently only synchronous QMP functions are supported, but this will also be used for async QMP functions and QMP guest proxy dispatch as well.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
show more ...
|
43c20a43 | 19-Jul-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: add QMP command registration/lookup functions
Registration/lookup functions for that provide a lookup table for dispatching QMP commands.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.co
qapi: add QMP command registration/lookup functions
Registration/lookup functions for that provide a lookup table for dispatching QMP commands.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
show more ...
|
d5f3c29c | 19-Jul-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: add QAPI dealloc visitor
Type of Visitor class that can be passed into a qapi-generated C type's visitor function to free() any heap-allocated data types.
Signed-off-by: Michael Roth <mdroth@
qapi: add QAPI dealloc visitor
Type of Visitor class that can be passed into a qapi-generated C type's visitor function to free() any heap-allocated data types.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
show more ...
|
e4e6aa14 | 19-Jul-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: add QMP output visitor
Type of Visiter class that serves as the inverse of the input visitor: it takes a series of native C types and uses their values to construct a corresponding QObject. Th
qapi: add QMP output visitor
Type of Visiter class that serves as the inverse of the input visitor: it takes a series of native C types and uses their values to construct a corresponding QObject. The command marshaling/dispatcher functions will use this to convert the output of QMP functions into a QObject that can be sent over the wire.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
show more ...
|
c40cc0a0 | 19-Jul-2011 |
Michael Roth <mdroth@linux.vnet.ibm.com> |
qapi: add QMP input visitor
A type of Visiter class that is used to walk a qobject's structure and assign each entry to the corresponding native C type. Command marshaling function will use this to
qapi: add QMP input visitor
A type of Visiter class that is used to walk a qobject's structure and assign each entry to the corresponding native C type. Command marshaling function will use this to pull out QMP command parameters recieved over the wire and pass them as native arguments to the corresponding C functions.
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@gmail.com>
show more ...
|