以下简单代码足以重现我遇到的错误。
#include<gio/gio.h>
int main()
{
GVariantIter *Iter;
const gchar* s = "[('appname', uint64 size, uint64 field, false)]";
GVariant* up = g_variant_new_string(s);
Iter = g_variant_iter_new(up);
return 0;
}
它导致:
GLib:ERROR:../../../glib/gvariant-serialiser.c:1367:g_variant_serialised_n_children: 代码不应该到达保释!GLib:ERROR:../../../glib/gvariant-serialiser.c:1367:g_variant_serialised_n_children: 代码不应该到达 Aborted
我错过了什么?文档有些模糊。
GVariant * g_variant_new_string (const gchar *string);
Creates a string GVariant with the contents of string.
GVariantIter * g_variant_iter_new (GVariant *value);
Creates a heap-allocated GVariantIter for iterating over the items in value.