Re: [Qemu-devel] [PATCH 3/7] QMP: Assure that returned data is a QDict

2009-12-21 Thread Nathan Baum
On Fri, 2009-12-18 at 13:25 -0200, Luiz Capitulino wrote:
 This is for debug purposes only.

This breaks quite a lot of commands where the returned data is a QList,
e.g. query-commands, query-mice, query-cpus. Is the assert wrong, or are
such commands meant to be returning a QDict?

 Signed-off-by: Luiz Capitulino lcapitul...@redhat.com
 ---
  monitor.c |1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
 
 diff --git a/monitor.c b/monitor.c
 index d238660..8ef1582 100644
 --- a/monitor.c
 +++ b/monitor.c
 @@ -283,6 +283,7 @@ static void monitor_protocol_emitter(Monitor *mon, 
 QObject *data)
  if (!monitor_has_error(mon)) {
  /* success response */
  if (data) {
 +assert(qobject_type(data) == QTYPE_QDICT);
  qobject_incref(data);
  qdict_put_obj(qmp, return, data);
  } else {






Re: [Qemu-devel] [PATCH 3/7] QMP: Assure that returned data is a QDict

2009-12-21 Thread Luiz Capitulino
On Mon, 21 Dec 2009 19:21:18 +
Nathan Baum nat...@parenthephobia.org.uk wrote:

 On Fri, 2009-12-18 at 13:25 -0200, Luiz Capitulino wrote:
  This is for debug purposes only.
 
 This breaks quite a lot of commands where the returned data is a QList,
 e.g. query-commands, query-mice, query-cpus. Is the assert wrong, or are
 such commands meant to be returning a QDict?

 The assert is wrong, as we've defined that returning a QList of
QDicts is ok.

 We could check for a QList too and check its contents but I think that
only dropping the assert is ok for now.

 Will submit a patch and thanks for testing QMP.




[Qemu-devel] [PATCH 3/7] QMP: Assure that returned data is a QDict

2009-12-18 Thread Luiz Capitulino
This is for debug purposes only.

Signed-off-by: Luiz Capitulino lcapitul...@redhat.com
---
 monitor.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/monitor.c b/monitor.c
index d238660..8ef1582 100644
--- a/monitor.c
+++ b/monitor.c
@@ -283,6 +283,7 @@ static void monitor_protocol_emitter(Monitor *mon, QObject 
*data)
 if (!monitor_has_error(mon)) {
 /* success response */
 if (data) {
+assert(qobject_type(data) == QTYPE_QDICT);
 qobject_incref(data);
 qdict_put_obj(qmp, return, data);
 } else {
-- 
1.6.6.rc3