From: Avi Kivity <avi@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH] Fix qapi code generation fix
Date: Wed, 28 Dec 2011 12:26:58 +0200 [thread overview]
Message-ID: <1325068018-19290-1-git-send-email-avi@redhat.com> (raw)
The fixes to qapi code generation had multiple bugs:
- the Null class used to drop output was missing some methods
- in some scripts it was never instantiated, leading to a None return,
which is missing even more methods
- the --source and --header options were swapped
Luckily, all those bugs were hidden by a makefile bug which caused the
old behaviour (with the race) to be invoked.
Signed-off-by: Avi Kivity <avi@redhat.com>
---
Makefile | 2 +-
scripts/qapi-commands.py | 12 ++++--------
scripts/qapi-types.py | 12 +++++-------
scripts/qapi-visit.py | 12 +++++-------
4 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/Makefile b/Makefile
index 0838bc4..8118478 100644
--- a/Makefile
+++ b/Makefile
@@ -173,7 +173,7 @@ qapi-dir := $(BUILD_DIR)/qapi-generated
test-qmp-input-visitor.o test-qmp-output-visitor.o test-qmp-commands.o qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-dir)
qemu-ga$(EXESUF): LIBS = $(LIBS_QGA)
-gen-out-type = $(subst .,-,$@)
+gen-out-type = $(subst .,-,$(suffix $@))
$(qapi-dir)/test-qapi-types.c $(qapi-dir)/test-qapi-types.h :\
$(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index bd7b207..3aabf61 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -399,9 +399,9 @@ for o, a in opts:
elif o in ("-m", "--middle"):
middle_mode = True
elif o in ("-c", "--source"):
- do_h = True
- elif o in ("-h", "--header"):
do_c = True
+ elif o in ("-h", "--header"):
+ do_h = True
if not do_c and not do_h:
do_c = True
@@ -411,15 +411,11 @@ c_file = output_dir + prefix + c_file
h_file = output_dir + prefix + h_file
def maybe_open(really, name, opt):
- class Null(object):
- def write(self, str):
- pass
- def read(self):
- return ''
if really:
return open(name, opt)
else:
- return Null()
+ import StringIO
+ return StringIO.StringIO()
try:
os.makedirs(output_dir)
diff --git a/scripts/qapi-types.py b/scripts/qapi-types.py
index ae644bc..b56225b 100644
--- a/scripts/qapi-types.py
+++ b/scripts/qapi-types.py
@@ -183,9 +183,9 @@ for o, a in opts:
elif o in ("-o", "--output-dir"):
output_dir = a + "/"
elif o in ("-c", "--source"):
- do_h = True
- elif o in ("-h", "--header"):
do_c = True
+ elif o in ("-h", "--header"):
+ do_h = True
if not do_c and not do_h:
do_c = True
@@ -201,13 +201,11 @@ except os.error, e:
raise
def maybe_open(really, name, opt):
- class Null(object):
- def write(self, str):
- pass
- def read(self):
- return ''
if really:
return open(name, opt)
+ else:
+ import StringIO
+ return StringIO.StringIO()
fdef = maybe_open(do_c, c_file, 'w')
fdecl = maybe_open(do_h, h_file, 'w')
diff --git a/scripts/qapi-visit.py b/scripts/qapi-visit.py
index e9d0584..5160d83 100644
--- a/scripts/qapi-visit.py
+++ b/scripts/qapi-visit.py
@@ -159,9 +159,9 @@ for o, a in opts:
elif o in ("-o", "--output-dir"):
output_dir = a + "/"
elif o in ("-c", "--source"):
- do_h = True
- elif o in ("-h", "--header"):
do_c = True
+ elif o in ("-h", "--header"):
+ do_h = True
if not do_c and not do_h:
do_c = True
@@ -177,13 +177,11 @@ except os.error, e:
raise
def maybe_open(really, name, opt):
- class Null(object):
- def write(self, str):
- pass
- def read(self):
- return ''
if really:
return open(name, opt)
+ else:
+ import StringIO
+ return StringIO.StringIO()
fdef = maybe_open(do_c, c_file, 'w')
fdecl = maybe_open(do_h, h_file, 'w')
--
1.7.7.1
next reply other threads:[~2011-12-28 10:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-28 10:26 Avi Kivity [this message]
2012-01-12 14:16 ` [Qemu-devel] [PATCH] Fix qapi code generation fix Avi Kivity
2012-01-12 16:54 ` Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1325068018-19290-1-git-send-email-avi@redhat.com \
--to=avi@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).