Example #1
0
__declspec(dllexport) void curl_shim_cleanup()
{
    Table_map(g_delegateTable, vfree, NULL);
    Table_free(&g_delegateTable);
    DeleteCriticalSection(&g_csDelegateTable);
    Table_map(g_shareDelegateTable, vfree, NULL);
    Table_free(&g_shareDelegateTable);
    DeleteCriticalSection(&g_csShareDelegateTable);
}
Example #2
0
File: wf.c Project: ZoneMo/backup
void wf(char *name, FILE *fp) {
	Table_T table = Table_new(0, NULL, NULL);
	char buf[128];
	while (getword(fp, buf, sizeof buf, first, rest)) {
		const char *word;
		int i, *count;
		for (i = 0; buf[i] != '\0'; i++)
			buf[i] = tolower(buf[i]);
		word = Atom_string(buf);
		count = Table_get(table, word);
		if (count)
			(*count)++;
		else {
			NEW(count);
			*count = 1;
			Table_put(table, word, count);
		}
	}
	if (name)
		printf("%s:\n", name);
	{ int i;
	  void **array = Table_toArray(table, NULL);
	  qsort(array, Table_length(table), 2*sizeof (*array),
	  	compare);
	  for (i = 0; array[i]; i += 2)
	  	printf("%d\t%s\n", *(int *)array[i+1],
	  		(char *)array[i]);
	  FREE(array); }
	Table_map(table, vfree, NULL);
	Table_free(&table);
}
Example #3
0
File: kref.c Project: ZoneMo/backup
int main(int argc, char *argv[]) {
	int i;
	Table_T identifiers = Table_new(5000,
		(int (*)(const void *, const void *))strcmp, strhash);

	Fmt_register('S', Str_fmt);
	first = Str_catv("abcdefghijklmnopqrstuvwxyz", 1, 0,
		"ABCDEFGHIJKLMNOPQRSTUVWXYZ", 1, 0, "_", 1, 0, NULL);
	rest  = Str_cat(first, 1, 0, "0123456789", 1, 0);
	for (i = 1; i < argc; i++) {
		FILE *fp = fopen(argv[i], "r");
		if (fp == NULL)
			fprintf(stderr, "%s: can't open '%s' (%s)\n", argv[0], argv[i], strerror(errno));
		else {
			kref(argv[i], fp, identifiers);
			fclose(fp);
		}
	}
	if (argc == 1)
		kref(NULL, stdin, identifiers);
	{
		int i;
		void **array = Table_toArray(identifiers, NULL);
		qsort(array, Table_length(identifiers), 2*sizeof (*array), compare);
		for (i = 0; array[i]; i += 2) {
			Fmt_print("%S", array[i], 1, 0);
			print(array[i+1]);
			FREE(array[i]);
		}
		FREE(array);
		Table_free(&identifiers);
	}
	return EXIT_SUCCESS;
}
Example #4
0
void Umsections_free(T *asmp) {
    Table_map((*asmp)->sections,applyFree,NULL);
    Table_free(&((*asmp)->sections));
    Seq_free(&((*asmp)->sectionOrder));
//    Seq_free(((*asmp)->currentSection));
    free(*asmp);
}
Example #5
0
int main(int argc, char *argv[]) {
	int i;
	Table_T identifiers = Table_new(10000, textcmp, texthash);
	Text_save_T mark = Text_save();

	Fmt_register('T', Text_fmt);
	Fmt_register('D', Integer_fmt);
	first = Text_cat(Text_cat(Text_ucase, Text_lcase), Text_box("_", 1));
	rest  = Text_cat(first, Text_digits);
	for (i = 1; i < argc; i++) {
		FILE *fp = fopen(argv[i], "r");
		if (fp == NULL)
		fprintf(stderr, "%s: can't open '%s' (%s)\n", argv[0], argv[i], strerror(errno));
		else {
			cref(argv[i], fp, identifiers);
			fclose(fp);
		}
	}
	if (argc == 1)
		cref(NULL, stdin, identifiers);
	{
		int i;
		void **array = Table_toArray(identifiers, NULL);
		qsort(array, Table_length(identifiers), 2*sizeof (*array), compare);
		for (i = 0; array[i]; i += 2) {
			Fmt_print("%T", array[i]);
			print(array[i+1]);
			FREE(array[i]);
		}
		FREE(array);
		Table_free(&identifiers);
	}
	Text_restore(&mark);
	return EXIT_SUCCESS;
}
Example #6
0
/* Frees a given Umsections_T */
void Umsections_free(Umsections_T *asmp)
{
        Table_map((*asmp)->table, apply_free, NULL);

        Table_free(&((*asmp)->table));
        Seq_free(&((*asmp)->order));

        free(*asmp);
}
Example #7
0
int main( int argc, char *argv[])
{

        (void) argc;
        (void) argv;

        Table_T fpTable = Table_new( initTableSize, NULL, NULL );

        readAll( fpTable );
        printAll( fpTable);
        Table_free(&fpTable);
        return 0;
}
Example #8
0
static void _cleanup(OeSession session) {

    T _this_ = OeNet_get_proto(OeSession_get_net(session));
    int sz = Table_length(_this_->pending);
    void **array = Table_toArray(_this_->pending, NULL);
    for ( int i = 0; i < sz && array[i]; i+= 2 ) {
        CID_KEY *key = (CID_KEY *) array[i];
        ACContext *pc = Table_remove(_this_->pending, key);
        _send_con_closed(pc->context);
    }
    Mem_free(array, __FILE__, __LINE__);
    Table_free(&_this_->pending);
    //OepClient_free(&_this_);  //closing the proto is hard and buggy.
}
Example #9
0
/*Function Definitions*/
int main(int argc, char** argv)
{
        Table_T ftable = Table_new(1, NULL, NULL);  
        
        if (argc == 1) {
                input(&ftable);
                print_table(&ftable);
        } else {
                fprintf(stderr, "%s: %s\n",
                        argv[0], "Could not open file for reading");
                exit(1);
        }

        Table_free(&ftable);
}
Example #10
0
File: table.c Project: lucabol/llib
unsigned test_table() {

    Table_T tbl = Table_new(10, NULL, NULL);
    struct Test t1 = { 10, "Luca"};
    char* s1 = TestToStr(&t1);
    const char* a1 = Atom_string(s1);
    char * result;

    Table_put(tbl, a1, "Luca");
    result = (char*) Table_get(tbl, a1);
    test_assert(strcmp(result, "Luca") == 0);

    Table_free(&tbl);
    FREE(s1);
    Atom_freeAll();
    return TEST_SUCCESS;
}
Example #11
0
END_TEST


START_TEST(test_put_replace)
{
    /* New values replace old values with the same key. */

    Table_T *table = Table_new(0, cmpatom, hashatom);

    Table_put(table, (void*)0x12, (void*)0x34);
    Table_put(table, (void*)0x12, (void*)0x56);

    fail_unless( Table_length(table) == 1 );
    fail_unless( Table_get(table, (void*)0x12) == (void*)0x56);

    Table_remove(table, (void*)0x12);
    Table_free(&table);
}
Example #12
0
File: kref.c Project: ZoneMo/backup
void print(Table_T files) {
	int i;

	void **array = Table_toArray(files, NULL);
	qsort(array, Table_length(files), 2*sizeof (*array), compare);
	for (i = 0; array[i]; i += 2) {
		Seq_T seq = array[i+1];
		char *filename = array[i];
		if (*filename)
			Fmt_print("\t%S:", filename, 1, 0);
		while (Seq_length(seq) > 0)
			Fmt_print(" %S", Seq_remhi(seq), 1, 0);
		Fmt_print("\n");
		FREE(filename);
		Seq_free(&seq);
	}
	FREE(array);
	Table_free(&files);
}
Example #13
0
void Oed_Dispatcher_free(T *_this_p) {

    assert(_this_p && *_this_p);
    T _this_ = *_this_p;

    if (_this_->name) {
        Mem_free((void *) _this_->name, __FILE__, __LINE__);
    }

    Table_T items = _this_->items;
    Table_free( &items );

    event_base_free( (struct event_base *) Oed_Dispatcher_get_event_base(_this_) );

#ifdef OE_USE_THREADS
    Mem_free( _this_->notify_event, __FILE__, __LINE__);
#endif
    Mem_free( _this_->que,          __FILE__, __LINE__);
    Mem_free( _this_,               __FILE__, __LINE__);
}
Example #14
0
void print_fgroups(T* table)
{
    char ** arr = (char **)Table_toArray(*table, NULL);
    int table_length = Table_length(*table) * 2;
    for (int i=0; i < table_length; i+=2) {
        L list_ptr = ((L)arr[i+1]);
        int list_size = List_length(list_ptr);
        if (list_size >= 2) {
            char **names = (char**) List_toArray(list_ptr, NULL);
            for (int j = 0; names[j]; j++)
                printf("%s\n", (char*)(names[j]));
            if (2*i+2 < table_length)
                printf("\n");
            free(names);
        }
        List_free(&list_ptr);
    }
    free(arr);
    Table_free(table);
}
Example #15
0
END_TEST


START_TEST(test_get)
{
    /* Table_get() with non-existant key returns NULL */

    Table_T *table = Table_new(0, cmpatom, hashatom);

    Table_put(table, (void*)0x12, (void*)0x34);

    fail_unless( Table_length(table) == 1 );
    fail_unless( Table_get(table, (void*)0x12) == (void*)0x34);

    /* non-existant key */
    fail_unless( Table_get(table, (void*)0x34) == NULL);

    Table_remove(table, (void*)0x12);
    Table_free(&table);
}
Example #16
0
int try_running_tests_in_dso(struct herc *h, const char *file, void *handle) {
	size_t i = 0;
	void *suite_fixture, *test_fixture;
	//get the suites
	Table_T suitesTable = get_testnames_in_file(file, handle);

	//convert to array for easier sorting and iteration
	unsigned nSuites = Table_length(suitesTable);
	void **suites = Table_toArray(suitesTable, 0);
	Table_free(&suitesTable);
	
	//sort
	qsort(suites, nSuites, 2*sizeof(suites[0]), (int (*)(const void *, const void *))strcmp);

	//iterate and run
	for (i = 0; i<nSuites; i++) {
		suite_desc *suite = suites[i*2+1];
		suite_fixture = invoke_before_suite(suite);//TODO call RBE callback
		cr_list_iter *iter = cr_list_iter_create(suite->tests);
		while (!cr_list_iter_past_end(iter)) {
			test_fixture = invoke_before_test(suite, suite_fixture);
			test_desc *test = (test_desc*)cr_list_iter_get(iter);
			herc_rbe_invoke(h->rbe, start_test, test);
			run_test(h, handle, test, test_fixture);
			herc_rbe_invoke(h->rbe, end_test, test);
			invoke_after_test(suite, test_fixture);
			cr_list_iter_next(iter);
		}
		cr_list_iter_free(iter);
		invoke_after_suite(suite, suite_fixture);
	}

	for (i = 0; i<nSuites; i++) {
		suite_desc_free(suites[i*2+1]);
	}


	free(suites);
	return 0;
}
Example #17
0
END_TEST


START_TEST(test_put_in_same_bucket)
{
    /* Our hash function always places key/vals in the same bucket -
     * assert that multiple items can be placed and retreived from
     * the same bucket */

    Table_T *table = Table_new(0, cmpatom, hashatom);

    Table_put(table, (void*)0x12, (void*)0x34);
    Table_put(table, (void*)0x56, (void*)0x78);

    fail_unless( Table_length(table) == 2 );
    fail_unless( Table_get(table, (void*)0x12) == (void*)0x34);
    fail_unless( Table_get(table, (void*)0x56) == (void*)0x78);

    Table_remove(table, (void*)0x12);
    Table_remove(table, (void*)0x56);
    Table_free(&table);
}
Example #18
0
void print(Table_T files) {
	int i;

	void **array = Table_toArray(files, NULL);
	qsort(array, Table_length(files), 2*sizeof (*array), compare);
	for (i = 0; array[i]; i += 2) {
		Ring_T ring = array[i+1];
		Text_T *filename = array[i];
		if (filename->len > 0)
			Fmt_print("\t%T:", filename);
		while (Ring_length(ring) > 0) {
			Integer_T line = Ring_remhi(ring);
			Fmt_print(" %D", line);
			FREE(line);
		}
		Fmt_print("\n");
		FREE(filename);
		Ring_free(&ring);
	}
	FREE(array);
	Table_free(&files);
}
Example #19
0
int main()
{
  FILE *fp = fopen("test.txt", "r");
  int c = 0;
  int i = 0;
  char s[512];
  Table_T our_table = Table_new(10, NULL, NULL);
  char * name;
  const char *fingerprint;
  const char* temp;
  while((c=fgetc(fp)) != ' ' && c != EOF)  //Fingerprint section
    {
      s[i]= c;
      i++;
    }
  s[i] = '\0';
  //Here we have fingerprint in s
  fingerprint = Atom_string(s);
  temp = Atom_string(s); 
  i = 0;
  while((c = getc(fp)) != '\n' && c != EOF)
    {
      s[i] = c;
      i++;
    }
  s[i] = '\0';
  //Here we have name in s
  name = s;    
  Table_put(our_table, fingerprint, name);
  while( c != EOF)
    {
      i = 0;
      while((c = fgetc(fp)) != ' ' && c != EOF) // Fingerprint section
	{
	  s[i] = c;
          i++;
	}
       s[i] = '\0';
       fingerprint = Atom_string(s);
       i = 0;
       while((c = getc(fp)) != '\n' && c != EOF)
	   {
             s[i] = c;
             i++;
            }
        s[i] = '\0';
        name = s;
        printf("FP: %s\n ", fingerprint);
    printf("NAME: %s\n", name);
 
	char * test = Table_put(our_table, fingerprint, name);
        printf("idk: %s\n", test); 
	// printf("VALUE STORED IN FP: %s\n\n", (char *)Table_get(our_table, temp));   
  }

  // NEED TO DEAL WITH TABLE MAP AND IMPLEMENTING A LIST   
  // Table_map(our_table, vfree, NULL);
  
  //printf("%s", fingerprint);
  // printf("%s", (char *)Table_get(our_table, fingerprint));
  
  printf("%d", Table_length(our_table));
  
  // Table_map(our_table, vfree, NULL);
  int length = Table_length(our_table);
  void **table = Table_toArray(our_table, NULL);
 for(int x = 0; x < 2*length; x++)
    {
      printf("%s ", (char *)table[x]); 
   }


  Table_free(&our_table);
  return 0;
}
Example #20
0
void exponent_table_free(exponent_table **E)
{
  Table_free(&((*E)->table));
  FREE(*E);
  *E = 0;
}
Example #21
0
/* Modifies chrlength_table to store offsets, rather than chrlengths */
static void
write_chromosome_file (char *genomesubdir, char *fileroot, Tableint_T chrlength_table) {
  FILE *textfp, *chrsubsetfp;
  char *divstring, *textfile, *chrsubsetfile, *iitfile, *chr_string, emptystring[1];
  int n, i;
  Chrom_T *chroms;
  Genomicpos_T chroffset = 0, chrlength;
  List_T divlist = NULL;
  List_T intervallist = NULL, chrtypelist = NULL, labellist = NULL, annotlist = NULL, p;
  Table_T intervaltable, labeltable, annottable;
  Interval_T interval;

  emptystring[0] = '\0';

  if (divsort == NO_SORT) {
    chroms = (Chrom_T *) Tableint_keys_by_timeindex(chrlength_table,0U);
    n = Tableint_length(chrlength_table);
  } else {
    /* Get chromosomes in order */
    chroms = (Chrom_T *) Tableint_keys(chrlength_table,0U);
    n = Tableint_length(chrlength_table);
    switch (divsort) {
    case ALPHA_SORT: qsort(chroms,n,sizeof(Chrom_T),Chrom_compare_alpha); break;
    case NUMERIC_ALPHA_SORT: qsort(chroms,n,sizeof(Chrom_T),Chrom_compare_numeric_alpha); break;
    case CHROM_SORT: qsort(chroms,n,sizeof(Chrom_T),Chrom_compare_chrom); break;
    default: abort();
    }
  }

  /* Write chromosome text file and chrsubset file */
  textfile = (char *) CALLOC(strlen(genomesubdir)+strlen("/")+
			     strlen(fileroot)+strlen(".chromosome")+1,sizeof(char));
  sprintf(textfile,"%s/%s.chromosome",genomesubdir,fileroot);
  /* Use binary, not text, so files are Unix-compatible */
  if ((textfp = FOPEN_WRITE_BINARY(textfile)) == NULL) {
    fprintf(stderr,"Can't write to file %s\n",textfile);
    exit(9);
  }
  FREE(textfile);

  chrsubsetfile = (char *) CALLOC(strlen(genomesubdir)+strlen("/")+
				  strlen(fileroot)+strlen(".chrsubset")+1,sizeof(char));
  sprintf(chrsubsetfile,"%s/%s.chrsubset",genomesubdir,fileroot);
  /* Use binary, not text, so files are Unix-compatible */
  if ((chrsubsetfp = FOPEN_WRITE_BINARY(chrsubsetfile)) == NULL) {
    fprintf(stderr,"Can't write to file %s\n",chrsubsetfile);
    exit(9);
  }
  FREE(chrsubsetfile);
  fprintf(chrsubsetfp,">all\n");
  fprintf(chrsubsetfp,"\n");

  chrtypelist = List_push(chrtypelist,"");
  for (i = 0; i < n; i++) {
    chrlength = (Genomicpos_T) Tableint_get(chrlength_table,chroms[i]);
    assert(chroffset <= chroffset+chrlength-1);
    chr_string = Chrom_string(chroms[i]);
    if (i < 100) {
      fprintf(stderr,"Chromosome %s has universal coordinates %u..%u\n",
	      chr_string,chroffset+1,chroffset+1+chrlength-1);
    } else if (i == 100) {
      fprintf(stderr,"More than 100 contigs.  Will stop printing messages\n");
    }
      
    if (n <= 100) {
      fprintf(chrsubsetfp,">%s\n",chr_string);
      fprintf(chrsubsetfp,"+%s\n",chr_string);
    }

    fprintf(textfp,"%s\t%u..%u\t%u\n",
	    chr_string,chroffset+1,chroffset+chrlength,chrlength);
    intervallist = List_push(intervallist,(void *) Interval_new(chroffset,chroffset+chrlength-1U,0));
    labellist = List_push(labellist,(void *) chr_string);
    annotlist = List_push(annotlist,(void *) emptystring); /* No annotations */
    Tableint_put(chrlength_table,chroms[i],chroffset);
    chroffset += chrlength;
  }
  FREE(chroms);
  intervallist = List_reverse(intervallist);
  labellist = List_reverse(labellist);

  fclose(chrsubsetfp);
  fclose(textfp);

  /* Write chromosome IIT file */
  divstring = (char *) CALLOC(1,sizeof(char));
  divstring[0] = '\0';
  divlist = List_push(NULL,divstring);

  intervaltable = Table_new(65522,Table_string_compare,Table_string_hash);
  labeltable = Table_new(65522,Table_string_compare,Table_string_hash);
  annottable = Table_new(65522,Table_string_compare,Table_string_hash);

  Table_put(intervaltable,(void *) divstring,intervallist);
  Table_put(labeltable,(void *) divstring,labellist);
  Table_put(annottable,(void *) divstring,annotlist);

  iitfile = (char *) CALLOC(strlen(genomesubdir)+strlen("/")+
			    strlen(fileroot)+strlen(".chromosome.iit")+1,sizeof(char));
  sprintf(iitfile,"%s/%s.chromosome.iit",genomesubdir,fileroot);
  IIT_write(iitfile,divlist,chrtypelist,/*fieldlist*/(List_T) NULL,
	    intervaltable,labeltable,annottable,divsort,
	    /*version, use 1 for backward compatibility*/1,
	    /*label_pointers_8p*/false,/*annot_pointers_8p*/false);
  FREE(iitfile);

  List_free(&divlist);
  FREE(divstring);

  Table_free(&annottable);
  Table_free(&labeltable);
  Table_free(&intervaltable);

  List_free(&annotlist);

  /* Do not free strings in labellist, since they are not allocated */
  List_free(&labellist);

  /* chrtypelist has no dynamically allocated strings */
  List_free(&chrtypelist);

  for (p = intervallist; p != NULL; p = List_next(p)) {
    interval = (Interval_T) List_head(p);
    Interval_free(&interval);
  }
  List_free(&intervallist);

  return;
}