diff mbox series

[RFC,08/12] qjson: allow caller to ask for arbitrary indent

Message ID 20180512012537.22478-9-jsnow@redhat.com
State New
Headers show
Series qemu-img: add bitmap queries | expand

Commit Message

John Snow May 12, 2018, 1:25 a.m. UTC
The function already exists, just expose it.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 include/qapi/qmp/qjson.h |  1 +
 qobject/qjson.c          | 21 +++++++++++----------
 2 files changed, 12 insertions(+), 10 deletions(-)

Comments

Eric Blake May 16, 2018, 9:34 p.m. UTC | #1
On 05/11/2018 08:25 PM, John Snow wrote:
> The function already exists, just expose it.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   include/qapi/qmp/qjson.h |  1 +
>   qobject/qjson.c          | 21 +++++++++++----------
>   2 files changed, 12 insertions(+), 10 deletions(-)
> 
> diff --git a/include/qapi/qmp/qjson.h b/include/qapi/qmp/qjson.h
> index b274ac3a86..0e8624c1fa 100644
> --- a/include/qapi/qmp/qjson.h
> +++ b/include/qapi/qmp/qjson.h
> @@ -19,6 +19,7 @@ QObject *qobject_from_jsonf(const char *string, ...) GCC_FMT_ATTR(1, 2);
>   QObject *qobject_from_jsonv(const char *string, va_list *ap, Error **errp)
>       GCC_FMT_ATTR(1, 0);
>   
> +QString *qobject_to_json_opt(const QObject *obj, int pretty, int indent);

pretty seems like it is better as a bool.  Even though to_json() isn't 
typed correctly, that's no excuse for the public function to copy a bad 
interface (and maybe it's worth a separate cleanup patch to fix 
to_json() first).
John Snow May 16, 2018, 9:49 p.m. UTC | #2
On 05/16/2018 05:34 PM, Eric Blake wrote:
> On 05/11/2018 08:25 PM, John Snow wrote:
>> The function already exists, just expose it.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>>   include/qapi/qmp/qjson.h |  1 +
>>   qobject/qjson.c          | 21 +++++++++++----------
>>   2 files changed, 12 insertions(+), 10 deletions(-)
>>
>> diff --git a/include/qapi/qmp/qjson.h b/include/qapi/qmp/qjson.h
>> index b274ac3a86..0e8624c1fa 100644
>> --- a/include/qapi/qmp/qjson.h
>> +++ b/include/qapi/qmp/qjson.h
>> @@ -19,6 +19,7 @@ QObject *qobject_from_jsonf(const char *string, ...)
>> GCC_FMT_ATTR(1, 2);
>>   QObject *qobject_from_jsonv(const char *string, va_list *ap, Error
>> **errp)
>>       GCC_FMT_ATTR(1, 0);
>>   +QString *qobject_to_json_opt(const QObject *obj, int pretty, int
>> indent);
> 
> pretty seems like it is better as a bool.  Even though to_json() isn't
> typed correctly, that's no excuse for the public function to copy a bad
> interface (and maybe it's worth a separate cleanup patch to fix
> to_json() first).
> 

Eh, sure, why not. Done.
diff mbox series

Patch

diff --git a/include/qapi/qmp/qjson.h b/include/qapi/qmp/qjson.h
index b274ac3a86..0e8624c1fa 100644
--- a/include/qapi/qmp/qjson.h
+++ b/include/qapi/qmp/qjson.h
@@ -19,6 +19,7 @@  QObject *qobject_from_jsonf(const char *string, ...) GCC_FMT_ATTR(1, 2);
 QObject *qobject_from_jsonv(const char *string, va_list *ap, Error **errp)
     GCC_FMT_ATTR(1, 0);
 
+QString *qobject_to_json_opt(const QObject *obj, int pretty, int indent);
 QString *qobject_to_json(const QObject *obj);
 QString *qobject_to_json_pretty(const QObject *obj);
 
diff --git a/qobject/qjson.c b/qobject/qjson.c
index 9816a65c7d..d603e1cce1 100644
--- a/qobject/qjson.c
+++ b/qobject/qjson.c
@@ -252,20 +252,21 @@  static void to_json(const QObject *obj, QString *str, int pretty, int indent)
     }
 }
 
+QString *qobject_to_json_opt(const QObject *obj, int pretty, int indent)
+{
+    QString *str = qstring_new();
+
+    to_json(obj, str, pretty, indent);
+
+    return str;
+}
+
 QString *qobject_to_json(const QObject *obj)
 {
-    QString *str = qstring_new();
-
-    to_json(obj, str, 0, 0);
-
-    return str;
+    return qobject_to_json_opt(obj, 0, 0);
 }
 
 QString *qobject_to_json_pretty(const QObject *obj)
 {
-    QString *str = qstring_new();
-
-    to_json(obj, str, 1, 0);
-
-    return str;
+    return qobject_to_json_opt(obj, 1, 0);
 }