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
