Try not calling begin() until after setting up avail_in and _out

This commit is contained in:
Erica Fischer
2023-11-16 15:42:32 -08:00
parent 3322ef30d4
commit 4619f234e5
2 changed files with 5 additions and 5 deletions
-3
View File
@@ -20,9 +20,6 @@ void decompressor::begin() {
fprintf(stderr, "initialize decompression: %d %s\n", d, zs.msg);
exit(EXIT_IMPOSSIBLE);
}
zs.avail_out = 0;
zs.avail_in = 0;
}
int decompressor::fread(void *p, size_t size, size_t nmemb, std::atomic<long long> *geompos) {
+5 -2
View File
@@ -1974,10 +1974,9 @@ long long write_tile(decompressor *geoms, std::atomic<long long> *geompos_in, ch
if (geoms->within) {
geoms->end(geompos_in);
}
geoms->begin();
}
printf("fseek to %lld\n", (long long) geoms->fp);
if (fseek(geoms->fp, og, SEEK_SET) != 0) {
perror("fseek geom");
exit(EXIT_SEEK);
@@ -1986,6 +1985,10 @@ long long write_tile(decompressor *geoms, std::atomic<long long> *geompos_in, ch
*geompos_in = og;
geoms->zs.avail_in = 0;
geoms->zs.avail_out = 0;
if (compressed_input) {
geoms->begin();
}
}
int prefilter_write = -1, prefilter_read = -1;