String_set * string_set_create(void) { String_set *ss; int i; ss = (String_set *) xalloc(sizeof(String_set)); ss->size = next_prime_up(100); ss->table = (wchar_t **) xalloc(ss->size * sizeof(wchar_t *)); ss->count = 0; for (i = 0; i < ss->size; ++i) ss->table[i] = NULL; return ss; }
String_set * string_set_create(void) { String_set *ss; ss = (String_set *) xalloc(sizeof(String_set)); ss->size = next_prime_up(100); ss->table = (char **) xalloc(ss->size * sizeof(char *)); memset(ss->table, 0, ss->size*sizeof(char *)); ss->count = 0; return ss; }
void grow_table(String_set *ss) { String_set old; int i, p; old = *ss; ss->size = next_prime_up(2 * old.size); /* at least double the size */ ss->table = (wchar_t **) xalloc(ss->size * sizeof(wchar_t *)); ss->count = 0; for (i=0; i<ss->size; i++) ss->table[i] = NULL; for (i=0; i<old.size; i++) { if (old.table[i] != NULL) { p = find_place(old.table[i], ss); ss->table[p] = old.table[i]; ss->count++; } } /*wprintf_s("growing from %d to %d\n", old.size, ss->size);*/ fflush(stdout); xfree((wchar_t *) old.table, old.size * sizeof(wchar_t *)); }
static void grow_table(String_set *ss) { String_set old; unsigned int i, p; old = *ss; ss->size = next_prime_up(2 * old.size); /* at least double the size */ ss->table = (char **) xalloc(ss->size * sizeof(char *)); memset(ss->table, 0, ss->size*sizeof(char *)); ss->count = 0; for (i=0; i<old.size; i++) { if (old.table[i] != NULL) { p = find_place(old.table[i], ss); ss->table[p] = old.table[i]; ss->count++; } } /* printf("growing from %d to %d\n", old.size, ss->size); */ /* fflush(stdout); */ xfree((char *) old.table, old.size * sizeof(char *)); }
static void grow_table(String_id *ss) { String_id old; size_t i; unsigned int p; old = *ss; ss->size = next_prime_up(3 * old.size); /* at least triple the size */ ss->table = (ss_id *)malloc(ss->size * sizeof(ss_id)); memset(ss->table, 0, ss->size*sizeof(ss_id)); ss->count = 0; for (i=0; i<old.size; i++) { if (old.table[i].str != NULL) { p = find_place(old.table[i].str, ss); ss->table[p] = old.table[i]; ss->count++; } } /* printf("growing from %d to %d\n", old.size, ss->size); */ /* fflush(stdout); */ free(old.table); }