void g_free_all_vertex( GHashTable * gh ) { GList * gl = g_hash_table_get_values ( gh ); int l = g_list_length( gl ); int i; for (i=0; i<l; i++) { VertexType * v = (VertexType *) g_list_nth_data( gl, i ); destroy_vertex( v ); } g_list_free( gl ); }
// glib bug : g_hash_table_foreach void g_free_a_vertex( gpointer key, gpointer value, gpointer dummy ) { printf("%d\n", *(int*) key); VertexType * v = (VertexType *) value; destroy_vertex( v ); }
VertexType* assign_operator_vertex(VertexType** v1, VertexType* v2) { if (*v1 != NULL) destroy_vertex(*v1); //gcDef(*v1, VERTEX_T); gcRef(v2, VERTEX_T); return (*v1 = v2); }
VertexType* assign_operator_vertex(VertexType** v1, VertexType* v2) { if (v1 != NULL) destroy_vertex(*v1); return (*v1 = v2); }