Trisurf Monte Carlo simulator
Samo Penic
2019-10-19 1eb75bcca71b97196c1ad29da5d082a21b12cf00
src/b64zlib_compression.c
@@ -98,17 +98,19 @@
   return return_value;
}
char  *ts_decompress(unsigned char *compressed_data, unsigned int data_len, unsigned int result_len){
char  *ts_decompress(unsigned char *compressed_data, unsigned int data_len, size_t *decompressed_length){
   const size_t encoded_header_len=24;
   ts_uint *header;
   size_t nbase1=0,nbase2=0;
   header=(ts_uint *)base64_decode((const char *)compressed_data, encoded_header_len, &nbase2);
   if(header==NULL) fprintf(stderr, "Error decoding header\n");
   //fprintf(stderr,"Header=%d, %d, %d, %d\n", header[0],header[1], header[2], header[3]);
   unsigned long result_len=header[2];
   unsigned char *decoded_data=base64_decode((const char *)&compressed_data[encoded_header_len], data_len-encoded_header_len, &nbase1);
   if(decoded_data==NULL) fprintf(stderr, "Error decoding compressed data\n");
   unsigned char *return_value=(unsigned char *)malloc(result_len*sizeof(char));
   uncompress(return_value, (unsigned long *)&result_len, decoded_data, header[3]);
   uncompress(return_value, &result_len, decoded_data, header[3]);
   *decompressed_length=result_len;
   free(decoded_data);
   free(header);
   return (char *)return_value;