uint8_t* file_in_buffer(const char* infile, const char* outfile, FILE* fp) { gaddag* parsed = parse_gaddag(infile); gaddag_to_binary(parsed, outfile); delete_gaddag(parsed); fp = fopen(outfile, "r"); if (!fp) { fprintf(stderr, "Error reading the file %s after creation.\n", outfile); fail(); } fseek(fp, 0, SEEK_END); long lSize = ftell(fp); rewind(fp); uint8_t* buffer = (uint8_t*) malloc(sizeof(uint8_t) * lSize); if (!buffer) { fprintf(stderr, "Error allocating into memory\n"); fail(); } size_t result = fread(buffer, 1, lSize, fp); if (!result) { fprintf(stderr, "Error reading contents into buffer"); } return buffer; }
void delete_gaddag(gaddag* input) { gaddag** links = input->ptrs; int i; for (i = 0; i < NUM_GADDAG_PTRS; ++i) { gaddag* ptr = links[i]; if (ptr) { delete_gaddag(ptr); } } free(links); free(input); }