qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12
@ 2017-07-12 16:09 Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 1/3] qobject: Catch another straggler for use of qdict_put_str() Markus Armbruster
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Markus Armbruster @ 2017-07-12 16:09 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit aa916e409c04cb614ec2fee8b6b33836bf5998bb:

  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.10-20170711' into staging (2017-07-11 16:34:09 +0100)

are available in the git repository at:

  git://repo.or.cz/qemu/armbru.git tags/pull-qapi-2017-07-12

for you to fetch changes up to 086ee7a6200fa5ad795b12110b5b3d5a93dcac3e:

  scripts: use build_ prefix for string not piped through cgen() (2017-07-12 17:51:54 +0200)

----------------------------------------------------------------
QAPI patches for 2017-07-12

----------------------------------------------------------------
Eric Blake (2):
      qobject: Catch another straggler for use of qdict_put_str()
      qobject: Update coccinelle script to catch Q{INC, DEC}REF

Marc-André Lureau (1):
      scripts: use build_ prefix for string not piped through cgen()

 monitor.c                        |  2 +-
 qemu-img.c                       |  2 +-
 scripts/coccinelle/qobject.cocci |  6 ++++++
 scripts/qapi-commands.py         |  8 ++++----
 scripts/qapi-event.py            | 12 ++++++------
 scripts/qapi.py                  |  2 +-
 6 files changed, 19 insertions(+), 13 deletions(-)

-- 
2.7.5

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 1/3] qobject: Catch another straggler for use of qdict_put_str()
  2017-07-12 16:09 [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Markus Armbruster
@ 2017-07-12 16:09 ` Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 2/3] qobject: Update coccinelle script to catch Q{INC, DEC}REF Markus Armbruster
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Markus Armbruster @ 2017-07-12 16:09 UTC (permalink / raw)
  To: qemu-devel

From: Eric Blake <eblake@redhat.com>

Dan's addition of key-secret improvements in commit 29cf9336 was
developed prior to the addition of QDict scalar insertion macros,
but merged after the general cleanup in commit 46f5ac20.
Patch created mechanically by rerunning:
  spatch --sp-file scripts/coccinelle/qobject.cocci \
         --macro-file scripts/cocci-macro-file.h --dir . --in-place

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-Id: <20170624181008.25497-2-eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 qemu-img.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qemu-img.c b/qemu-img.c
index f7ffb79..02900ce 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -355,7 +355,7 @@ static int img_add_key_secrets(void *opaque,
     QDict *options = opaque;
 
     if (g_str_has_suffix(name, "key-secret")) {
-        qdict_put(options, name, qstring_from_str(value));
+        qdict_put_str(options, name, value);
     }
 
     return 0;
-- 
2.7.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 2/3] qobject: Update coccinelle script to catch Q{INC, DEC}REF
  2017-07-12 16:09 [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 1/3] qobject: Catch another straggler for use of qdict_put_str() Markus Armbruster
@ 2017-07-12 16:09 ` Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 3/3] scripts: use build_ prefix for string not piped through cgen() Markus Armbruster
  2017-07-13 17:39 ` [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Markus Armbruster @ 2017-07-12 16:09 UTC (permalink / raw)
  To: qemu-devel

From: Eric Blake <eblake@redhat.com>

The recent commit b097efc0 used qobject_decref(QOBJECT(E)), even
though we already have QDECREF(E) for that purpose.  We can update
our coccinelle script to catch any future relapses; with that in
place, the rest of the patch is generated with:
 spatch --sp-file scripts/coccinelle/qobject.cocci \
        --macro-file scripts/cocci-macro-file.h --dir . --in-place

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20170624181008.25497-3-eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 monitor.c                        | 2 +-
 scripts/coccinelle/qobject.cocci | 6 ++++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/monitor.c b/monitor.c
index d8ac20f..61b7982 100644
--- a/monitor.c
+++ b/monitor.c
@@ -3842,7 +3842,7 @@ static void handle_qmp_command(JSONMessageParser *parser, GQueue *tokens)
 
     req_json = qobject_to_json(req);
     trace_handle_qmp_command(mon, qstring_get_str(req_json));
-    qobject_decref(QOBJECT(req_json));
+    QDECREF(req_json);
 
     rsp = qmp_dispatch(cur_mon->qmp.commands, req);
 
diff --git a/scripts/coccinelle/qobject.cocci b/scripts/coccinelle/qobject.cocci
index c3253de..c518caf 100644
--- a/scripts/coccinelle/qobject.cocci
+++ b/scripts/coccinelle/qobject.cocci
@@ -3,6 +3,12 @@
 expression Obj, Key, E;
 @@
 (
+- qobject_incref(QOBJECT(E));
++ QINCREF(E);
+|
+- qobject_decref(QOBJECT(E));
++ QDECREF(E);
+|
 - qdict_put_obj(Obj, Key, QOBJECT(E));
 + qdict_put(Obj, Key, E);
 |
-- 
2.7.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 3/3] scripts: use build_ prefix for string not piped through cgen()
  2017-07-12 16:09 [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 1/3] qobject: Catch another straggler for use of qdict_put_str() Markus Armbruster
  2017-07-12 16:09 ` [Qemu-devel] [PULL 2/3] qobject: Update coccinelle script to catch Q{INC, DEC}REF Markus Armbruster
@ 2017-07-12 16:09 ` Markus Armbruster
  2017-07-13 17:39 ` [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Markus Armbruster @ 2017-07-12 16:09 UTC (permalink / raw)
  To: qemu-devel; +Cc: Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

The gen_ prefix is awkward.  Generated C should go through cgen()
exactly once (see commit 1f9a7a1).  The common way to get this wrong is
passing a foo=gen_foo() keyword argument to mcgen().  I'd like us to
adopt a naming convention where gen_ means "something that's been piped
through cgen(), and thus must not be passed to cgen() or mcgen()".
Requires renaming gen_params(), gen_marshal_proto() and
gen_event_send_proto().

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20170601124143.10915-1-marcandre.lureau@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
---
 scripts/qapi-commands.py |  8 ++++----
 scripts/qapi-event.py    | 12 ++++++------
 scripts/qapi.py          |  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/scripts/qapi-commands.py b/scripts/qapi-commands.py
index 1943de4..974d0a4 100644
--- a/scripts/qapi-commands.py
+++ b/scripts/qapi-commands.py
@@ -21,7 +21,7 @@ def gen_command_decl(name, arg_type, boxed, ret_type):
 ''',
                  c_type=(ret_type and ret_type.c_type()) or 'void',
                  c_name=c_name(name),
-                 params=gen_params(arg_type, boxed, 'Error **errp'))
+                 params=build_params(arg_type, boxed, 'Error **errp'))
 
 
 def gen_call(name, arg_type, boxed, ret_type):
@@ -82,7 +82,7 @@ static void qmp_marshal_output_%(c_name)s(%(c_type)s ret_in, QObject **ret_out,
                  c_type=ret_type.c_type(), c_name=ret_type.c_name())
 
 
-def gen_marshal_proto(name):
+def build_marshal_proto(name):
     return ('void qmp_marshal_%s(QDict *args, QObject **ret, Error **errp)'
             % c_name(name))
 
@@ -91,7 +91,7 @@ def gen_marshal_decl(name):
     return mcgen('''
 %(proto)s;
 ''',
-                 proto=gen_marshal_proto(name))
+                 proto=build_marshal_proto(name))
 
 
 def gen_marshal(name, arg_type, boxed, ret_type):
@@ -103,7 +103,7 @@ def gen_marshal(name, arg_type, boxed, ret_type):
 {
     Error *err = NULL;
 ''',
-                proto=gen_marshal_proto(name))
+                proto=build_marshal_proto(name))
 
     if ret_type:
         ret += mcgen('''
diff --git a/scripts/qapi-event.py b/scripts/qapi-event.py
index 0485e39..bcbef10 100644
--- a/scripts/qapi-event.py
+++ b/scripts/qapi-event.py
@@ -14,10 +14,10 @@
 from qapi import *
 
 
-def gen_event_send_proto(name, arg_type, boxed):
+def build_event_send_proto(name, arg_type, boxed):
     return 'void qapi_event_send_%(c_name)s(%(param)s)' % {
         'c_name': c_name(name.lower()),
-        'param': gen_params(arg_type, boxed, 'Error **errp')}
+        'param': build_params(arg_type, boxed, 'Error **errp')}
 
 
 def gen_event_send_decl(name, arg_type, boxed):
@@ -25,10 +25,10 @@ def gen_event_send_decl(name, arg_type, boxed):
 
 %(proto)s;
 ''',
-                 proto=gen_event_send_proto(name, arg_type, boxed))
+                 proto=build_event_send_proto(name, arg_type, boxed))
 
 
-# Declare and initialize an object 'qapi' using parameters from gen_params()
+# Declare and initialize an object 'qapi' using parameters from build_params()
 def gen_param_var(typ):
     assert not typ.variants
     ret = mcgen('''
@@ -42,7 +42,7 @@ def gen_param_var(typ):
         if memb.optional:
             ret += 'has_' + c_name(memb.name) + sep
         if memb.type.name == 'str':
-            # Cast away const added in gen_params()
+            # Cast away const added in build_params()
             ret += '(char *)'
         ret += c_name(memb.name)
     ret += mcgen('''
@@ -72,7 +72,7 @@ def gen_event_send(name, arg_type, boxed):
     Error *err = NULL;
     QMPEventFuncEmit emit;
 ''',
-                proto=gen_event_send_proto(name, arg_type, boxed))
+                proto=build_event_send_proto(name, arg_type, boxed))
 
     if arg_type and not arg_type.is_empty():
         ret += mcgen('''
diff --git a/scripts/qapi.py b/scripts/qapi.py
index 0de809f..84e2eb4 100644
--- a/scripts/qapi.py
+++ b/scripts/qapi.py
@@ -1897,7 +1897,7 @@ extern const char *const %(c_name)s_lookup[];
     return ret
 
 
-def gen_params(arg_type, boxed, extra):
+def build_params(arg_type, boxed, extra):
     if not arg_type:
         assert not boxed
         return extra
-- 
2.7.5

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12
  2017-07-12 16:09 [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Markus Armbruster
                   ` (2 preceding siblings ...)
  2017-07-12 16:09 ` [Qemu-devel] [PULL 3/3] scripts: use build_ prefix for string not piped through cgen() Markus Armbruster
@ 2017-07-13 17:39 ` Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2017-07-13 17:39 UTC (permalink / raw)
  To: Markus Armbruster; +Cc: QEMU Developers

On 12 July 2017 at 17:09, Markus Armbruster <armbru@redhat.com> wrote:
> The following changes since commit aa916e409c04cb614ec2fee8b6b33836bf5998bb:
>
>   Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.10-20170711' into staging (2017-07-11 16:34:09 +0100)
>
> are available in the git repository at:
>
>   git://repo.or.cz/qemu/armbru.git tags/pull-qapi-2017-07-12
>
> for you to fetch changes up to 086ee7a6200fa5ad795b12110b5b3d5a93dcac3e:
>
>   scripts: use build_ prefix for string not piped through cgen() (2017-07-12 17:51:54 +0200)
>
> ----------------------------------------------------------------
> QAPI patches for 2017-07-12
>
> ----------------------------------------------------------------
> Eric Blake (2):
>       qobject: Catch another straggler for use of qdict_put_str()
>       qobject: Update coccinelle script to catch Q{INC, DEC}REF
>
> Marc-André Lureau (1):
>       scripts: use build_ prefix for string not piped through cgen()
>

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-07-13 17:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-12 16:09 [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Markus Armbruster
2017-07-12 16:09 ` [Qemu-devel] [PULL 1/3] qobject: Catch another straggler for use of qdict_put_str() Markus Armbruster
2017-07-12 16:09 ` [Qemu-devel] [PULL 2/3] qobject: Update coccinelle script to catch Q{INC, DEC}REF Markus Armbruster
2017-07-12 16:09 ` [Qemu-devel] [PULL 3/3] scripts: use build_ prefix for string not piped through cgen() Markus Armbruster
2017-07-13 17:39 ` [Qemu-devel] [PULL 0/3] QAPI patches for 2017-07-12 Peter Maydell

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).