2008-06-06 04:42:48

by David Stockwell

[permalink] [raw]
Subject: [Bluez-devel] Retrieving an Array of Strings, that is attached to a G_HASH_TABLE variant

In Bluez, certain messages return a GHashTable of type (G_TYPE_STRING, G_TYPE_VALUE), so the key is a String, and the value is a Variant. Many of the values returned are boolean, integer, and other simple types; others are a boxed Object Path. These I can handle.

However, in a couple of cases, the value returned is an array of pointers to strings (G_TYPE_STRV).

To retrieve the strings, I am trying something like the following:

(GStrv) gPropValue = (GStrv) g_hash_table_lookup(propTable, "Strings"); // Assume that the "key" is "Strings"
if (gPropValue) {
while (*gPropValue) {
cout << *gPropValue << endl;
++gPropValue;
}
}

I do get a properly terminated list of pointers, but each pointer points to a null string. ('\0')

I have not yet added debug statements to syslog (my next step) into the system level code, but why are the strings not filled in? What else am I missing? Any suggestions?

David Stockwell


Attachments:
(No filename) (247.00 B)
(No filename) (164.00 B)
Download all attachments