Hi,
playing with the c_glib and poking around the generated files I've realized on 
weird thing.
When one message references another (e.g. union of all messages) the 
initialization for the
"envelope" creates gobjects for all of its members and sets them.

Therefore one can't simply g_object_get and compare with NULL because no matter 
if the
field has been set in the message it's set now. Either to whatever came from 
wire or to
default values.

The only way to tell what has actually been set or whether it's just a default 
init is checking the
__isset_<propertyName> field. But that feels a bit hacky.

Am I missing something or is using __isset_ directly from my code to find out 
what was set in
message and what (in case of optional fields / unions) hasn't been set the 
"correct way"?


Petr Houska
Azure Intern

Reply via email to