New API : g_value_holds_data
while use g_value_init(value, type), not yet set data in it, there is no way to check the GValue whether it had set data,
GValue a = G_VALUE_INIT;
g_assert (!G_VALUE_HOLDS_STRING (&a));
g_value_init (&a, G_TYPE_STRING);
g_assert (G_VALUE_HOLDS_STRING (&a));
g_assert (!G_VALUE_HOLDS_DATA (&a));
g_value_set_static_string (&a, "Hello, world!");
g_assert (G_VALUE_HOLDS_DATA (&a));
So we should consider adding a new API: g_value_holds_data or G_VALUE_HOLDS_DATA support this scenario
Edited by TAO ZUHONG