GQueue *rm_hash_table_setdefault(GHashTable *table, gpointer key, RmNewFunc default_func) { gpointer value = g_hash_table_lookup(table, key); if(value == NULL) { value = default_func(); g_hash_table_insert(table, key, value); } return value; }
void call_default_func1(void) { printf("var = %d, %s at %s\n", default_var, __func__, __FILE__); default_func(); }