struct NSNet *newNSNet(void) { struct NSNet *result; result = calloc(sizeof(struct NSNet), 1); FD_ZERO(&result->readfds); FD_ZERO(&result->writefds); FD_ZERO(&result->errfds); result->bindMap = newStringTable(); result->connectMap = newStringTable(); result->readerMap = newStringTable(); return result; }
static void testStringTable(void) { int val; struct StringTable *st; int i; for (i = 0; i < 100; i += 1) { st = newStringTable(); rassert(st); rassert(findString(st, "dog") == NULL); rassert(putString(st, "cat", &val) == 0); rassert(findString(st, "cat") == &val); rassert(delString(st, "dog") == ERR_NOSTRING); rassert(delString(st, "cat") == 0); rassert(findString(st, "cat") == NULL); rassert(putString(st, "1", &val) == 0); rassert(putString(st, "2", &val) == 0); rassert(putString(st, "3", &val) == 0); allSum = 0; allStrings(st, allStringTester, NULL); rassert(allSum == 6); rassert(delString(st, "1") == 0); rassert(delString(st, "3") == 0); rassert(delString(st, "2") == 0); rassert(putString(st, "memcheck", &val) == 0); freeStringTable(st); } }
SymbolTable* newSymbolTable() { SymbolTable* sym = malloc(sizeof(SymbolTable)); sym->tokenKindTable = newTokenKindTable(); sym->grammarCode = newGrammarCode(); sym->stringTable = newStringTable(); sym->stringIndexTable = newStringIndexTable(); return sym; }