static void de_run_gzip(deark *c, de_module_params *mparams) { lctx *d = NULL; i64 pos; i64 member_size; d = de_malloc(c, sizeof(lctx)); d->crco = de_crcobj_create(c, DE_CRCOBJ_CRC32_IEEE); pos = 0; while(1) { if(pos >= c->infile->len) break; if(!do_gzip_read_member(c, d, pos, &member_size)) { break; } if(member_size<=0) break; pos += member_size; } dbuf_close(d->output_file); if(d) { de_crcobj_destroy(d->crco); de_free(c, d); } }
static void de_run_gzip(deark *c, de_module_params *mparams) { lctx *d = NULL; de_int64 pos; de_int64 member_size; d = de_malloc(c, sizeof(lctx)); pos = 0; while(1) { if(pos >= c->infile->len) break; if(!do_gzip_read_member(c, d, pos, &member_size)) { break; } if(member_size<=0) break; pos += member_size; } dbuf_close(d->output_file); de_free(c, d); }