static void createTables(void) { Res res; /* MPS intern IDs are serials from zero up, so we can use -1 * and -2 as specials. */ res = TableCreate(&internTable, (size_t)1<<4, tableAlloc, tableFree, NULL, (Word)-1, (Word)-2); if (res != ResOK) everror("Couldn't make intern table."); /* We assume that 0 and 1 are invalid as Addrs. */ res = TableCreate(&labelTable, (size_t)1<<7, tableAlloc, tableFree, NULL, 0, 1); if (res != ResOK) everror("Couldn't make label table."); }
static objectTable objectTableCreate(poolSupport support) { if (support != supportNothing) { Res ires; objectTable table; table = malloc(sizeof(objectTableStruct)); verify(table != NULL); ires = TableCreate(&table->startTable, (size_t)1<<12); verify(ires == ResOK); if (support == supportTruncate) { ires = TableCreate(&table->endTable, (size_t)1<<12); verify(ires == ResOK); } else { table->endTable = NULL; } return table; } else { return NULL; } }