[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-stable] [PATCH 2/3] qapi: dealloc visitor, implement visit_start_u
From: |
Michael Roth |
Subject: |
[Qemu-stable] [PATCH 2/3] qapi: dealloc visitor, implement visit_start_union |
Date: |
Thu, 11 Sep 2014 18:20:58 -0500 |
If the .data field of a QAPI Union is NULL, we don't need to free
any of the union fields..
Make use of the new visit_start_union interface to access this
information and instruct the generated code to not visit these
fields when this occurs.
Cc: address@hidden
Reported-by: Fam Zheng <address@hidden>
Suggested-by: Paolo Bonzini <address@hidden>
Signed-off-by: Michael Roth <address@hidden>
---
qapi/qapi-dealloc-visitor.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/qapi/qapi-dealloc-visitor.c b/qapi/qapi-dealloc-visitor.c
index dc53545..eb77078 100644
--- a/qapi/qapi-dealloc-visitor.c
+++ b/qapi/qapi-dealloc-visitor.c
@@ -162,6 +162,11 @@ static void qapi_dealloc_type_enum(Visitor *v, int *obj,
const char *strings[],
{
}
+static bool qapi_dealloc_start_union(Visitor *v, bool data_present, Error
**errp)
+{
+ return data_present;
+}
+
Visitor *qapi_dealloc_get_visitor(QapiDeallocVisitor *v)
{
return &v->visitor;
@@ -191,6 +196,7 @@ QapiDeallocVisitor *qapi_dealloc_visitor_new(void)
v->visitor.type_str = qapi_dealloc_type_str;
v->visitor.type_number = qapi_dealloc_type_number;
v->visitor.type_size = qapi_dealloc_type_size;
+ v->visitor.start_union = qapi_dealloc_start_union;
QTAILQ_INIT(&v->stack);
--
1.9.1
- [Qemu-stable] [PATCH 0/3] qapi: fix crash in dealloc visitor for union types, Michael Roth, 2014/09/11
- [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Michael Roth, 2014/09/11
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Eric Blake, 2014/09/11
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Paolo Bonzini, 2014/09/12
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Michael Roth, 2014/09/12
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Paolo Bonzini, 2014/09/12
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Michael Roth, 2014/09/12
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Paolo Bonzini, 2014/09/12
- Re: [Qemu-stable] [PATCH 1/3] qapi: add visit_start_union and visit_end_union, Michael Roth, 2014/09/12
[Qemu-stable] [PATCH 2/3] qapi: dealloc visitor, implement visit_start_union,
Michael Roth <=
[Qemu-stable] [PATCH 3/3] tests: add QMP input visitor test for unions with no discriminator, Michael Roth, 2014/09/11
[Qemu-stable] [PATCH 4/3] qemu-iotests: Test missing "driver" key for blockdev-add, Fam Zheng, 2014/09/11
Re: [Qemu-stable] [PATCH 0/3] qapi: fix crash in dealloc visitor for union types, Fam Zheng, 2014/09/11