- const gchar *data = g_variant_get_bytestring (vdata);
- size_t len = strlen (data);
- if (width <= MAX_SHORT_STRING)
- memcpy (val->short_string, data, MIN (MAX_SHORT_STRING, len));
- else
- val->long_string = xmemdup (data, MIN (width, len));
+ gsize w;
+ const gchar *data =
+ g_variant_get_fixed_array (vdata, &w, sizeof (gchar));
+
+ if (w != width)
+ g_critical ("Value variant's width does not match its array size");
+ val->s = xmemdup (data, w);