From ec17c8b5b8d79ceb7430cb994b045ef900d44ab7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Andr=C3=A9=20Vadla=20Ravn=C3=A5s?= Date: Mon, 21 Jun 2021 19:28:20 +0200 Subject: [PATCH] Implement marshaling of array variants --- src/_frida.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/_frida.c b/src/_frida.c index 717370c..bb26540 100644 --- a/src/_frida.c +++ b/src/_frida.c @@ -2289,6 +2289,26 @@ PyGObject_marshal_variant (GVariant * variant) return dict; } + if (g_variant_is_of_type (variant, G_VARIANT_TYPE_ARRAY)) + { + GVariantIter iter; + PyObject * list; + guint i; + GVariant * child; + + g_variant_iter_init (&iter, variant); + + list = PyList_New (g_variant_iter_n_children (&iter)); + + for (i = 0; (child = g_variant_iter_next_value (&iter)) != NULL; i++) + { + PyList_SET_ITEM (list, i, PyGObject_marshal_variant (child)); + g_variant_unref (child); + } + + return list; + } + g_assert_not_reached (); }