diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2015-12-09 12:34:02 +0000 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2016-01-18 17:47:58 +0100 |
commit | 7746abd8e9ee9db20c0b0fdb19504f163ba3cbea (patch) | |
tree | a5e9c56a0342b23cabe21e6bd199f312e1393fab /tests/check-qom-proplist.c | |
parent | 16bf7f522a2ff68993f80631ed86254c71eaf5d4 (diff) |
qom: Change object property iterator API contract
Currently the ObjectProperty iterator API works as follows:
ObjectPropertyIterator *iter;
iter = object_property_iter_init(obj);
while ((prop = object_property_iter_next(iter))) {
...
}
object_property_iter_free(iter);
This has the benefit that the ObjectPropertyIterator struct
can be opaque, but has the downside that callers need to
explicitly call a free function. It is also not in keeping
with iterator style used elsewhere in QEMU/GLib2.
This patch changes the API to use stack allocation instead:
ObjectPropertyIterator iter;
object_property_iter_init(&iter, obj);
while ((prop = object_property_iter_next(&iter))) {
...
}
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
[AF: Fused ObjectPropertyIterator struct with typedef]
Signed-off-by: Andreas Färber <afaerber@suse.de>
Diffstat (limited to 'tests/check-qom-proplist.c')
-rw-r--r-- | tests/check-qom-proplist.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/tests/check-qom-proplist.c b/tests/check-qom-proplist.c index 5167e78e93..448d270b68 100644 --- a/tests/check-qom-proplist.c +++ b/tests/check-qom-proplist.c @@ -455,11 +455,11 @@ static void test_dummy_iterator(void) NULL)); ObjectProperty *prop; - ObjectPropertyIterator *iter; + ObjectPropertyIterator iter; bool seenbv = false, seensv = false, seenav = false, seentype; - iter = object_property_iter_init(OBJECT(dobj)); - while ((prop = object_property_iter_next(iter))) { + object_property_iter_init(&iter, OBJECT(dobj)); + while ((prop = object_property_iter_next(&iter))) { if (g_str_equal(prop->name, "bv")) { seenbv = true; } else if (g_str_equal(prop->name, "sv")) { @@ -474,7 +474,6 @@ static void test_dummy_iterator(void) g_assert_not_reached(); } } - object_property_iter_free(iter); g_assert(seenbv); g_assert(seenav); g_assert(seensv); |