示例#1
0
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;
}
示例#2
0
文件: string-set.c 项目: dyne/AutOrg
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;
}
示例#3
0
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 *));
}
示例#4
0
文件: string-set.c 项目: dyne/AutOrg
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 *));
}
示例#5
0
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);
}