struct addrset *new_addrset (void) { struct addrset *as = os_malloc (sizeof (*as)); as->refc = 1; os_mutexInit (&as->lock, &gv.mattr); ut_avlCInit (&addrset_treedef, &as->ucaddrs); ut_avlCInit (&addrset_treedef, &as->mcaddrs); return as; }
d_table d_tableNew( int ( * compare )(), void ( * cleanAction )() ) { d_table table; assert(compare != 0); /* Allocate table object */ table = (d_table)d_malloc(C_SIZEOF(d_table), "Table"); if (table) { /* QAC EXPECT 3892; */ /* Call super-init */ d_objectInit(d_object(table), D_TABLE, (d_objectDeinitFunc)d_tableDeinit); /* Initialize table object */ ut_avlCTreedefInit (&table->td, offsetof (C_STRUCT(d_tableNode), avlnode), offsetof (C_STRUCT(d_tableNode), object), (int (*) (const void *, const void *)) compare, 0, UT_AVL_TREEDEF_FLAG_INDKEY); ut_avlCInit (&table->td, &table->tree); table->cleanAction = cleanAction; } return table; }