filter: Set function pointers in add_filter
Set function pointers in add filter functions, not in open. Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
This commit is contained in:
1 parent
860365a3f0
commit
c2ebb602e9
6 files changed
+8
-18
No files matched your search
@@ -98,6 +98,7 @@ archive_write_add_filter_bzip2(struct archive *_a)
|
||||
f->close = &archive_compressor_bzip2_close;
|
||||
f->free = &archive_compressor_bzip2_free;
|
||||
f->open = &archive_compressor_bzip2_open;
|
||||
f->write = archive_compressor_bzip2_write;
|
||||
f->code = ARCHIVE_FILTER_BZIP2;
|
||||
f->name = "bzip2";
|
||||
#if defined(HAVE_BZLIB_H) && defined(BZ_CONFIG_ERROR)
|
||||
@@ -199,7 +200,6 @@ archive_compressor_bzip2_open(struct archive_write_filter *f)
|
||||
memset(&data->stream, 0, sizeof(data->stream));
|
||||
data->stream.next_out = data->compressed;
|
||||
data->stream.avail_out = (uint32_t)data->compressed_buffer_size;
|
||||
f->write = archive_compressor_bzip2_write;
|
||||
|
||||
/* Initialize compression library */
|
||||
ret = BZ2_bzCompressInit(&(data->stream),
|
||||
@@ -370,7 +370,6 @@ archive_compressor_bzip2_open(struct archive_write_filter *f)
|
||||
archive_strcat(&as, " -");
|
||||
archive_strappend_char(&as, '0' + data->compression_level);
|
||||
}
|
||||
f->write = archive_compressor_bzip2_write;
|
||||
|
||||
r = __archive_write_program_open(f, data->pdata, as.s);
|
||||
archive_string_free(&as);
|
||||
|
||||
@@ -134,6 +134,9 @@ archive_write_add_filter_compress(struct archive *_a)
|
||||
archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
|
||||
ARCHIVE_STATE_NEW, "archive_write_add_filter_compress");
|
||||
f->open = &archive_compressor_compress_open;
|
||||
f->write = archive_compressor_compress_write;
|
||||
f->close = archive_compressor_compress_close;
|
||||
f->free = archive_compressor_compress_free;
|
||||
f->code = ARCHIVE_FILTER_COMPRESS;
|
||||
f->name = "compress";
|
||||
return (ARCHIVE_OK);
|
||||
@@ -174,10 +177,6 @@ archive_compressor_compress_open(struct archive_write_filter *f)
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
|
||||
f->write = archive_compressor_compress_write;
|
||||
f->close = archive_compressor_compress_close;
|
||||
f->free = archive_compressor_compress_free;
|
||||
|
||||
state->max_maxcode = 0x10000; /* Should NEVER generate this code. */
|
||||
state->in_count = 0; /* Length of input. */
|
||||
state->bit_buf = 0;
|
||||
|
||||
@@ -111,6 +111,7 @@ archive_write_add_filter_gzip(struct archive *_a)
|
||||
}
|
||||
f->data = data;
|
||||
f->open = &archive_compressor_gzip_open;
|
||||
f->write = archive_compressor_gzip_write;
|
||||
f->options = &archive_compressor_gzip_options;
|
||||
f->close = &archive_compressor_gzip_close;
|
||||
f->free = &archive_compressor_gzip_free;
|
||||
@@ -266,8 +267,6 @@ archive_compressor_gzip_open(struct archive_write_filter *f)
|
||||
}
|
||||
}
|
||||
|
||||
f->write = archive_compressor_gzip_write;
|
||||
|
||||
/* Initialize compression library. */
|
||||
init_success = deflateInit2(&(data->stream),
|
||||
data->compression_level,
|
||||
@@ -453,7 +452,6 @@ archive_compressor_gzip_open(struct archive_write_filter *f)
|
||||
/* Save timestamp. */
|
||||
archive_strcat(&as, " -N");
|
||||
|
||||
f->write = archive_compressor_gzip_write;
|
||||
r = __archive_write_program_open(f, data->pdata, as.s);
|
||||
archive_string_free(&as);
|
||||
return (r);
|
||||
|
||||
@@ -126,6 +126,7 @@ archive_write_add_filter_lz4(struct archive *_a)
|
||||
f->close = &archive_filter_lz4_close;
|
||||
f->free = &archive_filter_lz4_free;
|
||||
f->open = &archive_filter_lz4_open;
|
||||
f->write = archive_filter_lz4_write;
|
||||
f->code = ARCHIVE_FILTER_LZ4;
|
||||
f->name = "lz4";
|
||||
#if defined(HAVE_LIBLZ4) && LZ4_VERSION_MAJOR >= 1 && LZ4_VERSION_MINOR >= 2
|
||||
@@ -286,8 +287,6 @@ archive_filter_lz4_open(struct archive_write_filter *f)
|
||||
return (ARCHIVE_FATAL);
|
||||
}
|
||||
|
||||
f->write = archive_filter_lz4_write;
|
||||
|
||||
return (ARCHIVE_OK);
|
||||
}
|
||||
|
||||
@@ -672,8 +671,6 @@ archive_filter_lz4_open(struct archive_write_filter *f)
|
||||
if (data->block_independence == 0)
|
||||
archive_strcat(&as, " -BD");
|
||||
|
||||
f->write = archive_filter_lz4_write;
|
||||
|
||||
r = __archive_write_program_open(f, data->pdata, as.s);
|
||||
archive_string_free(&as);
|
||||
return (r);
|
||||
|
||||
@@ -156,6 +156,7 @@ common_setup(struct archive_write_filter *f)
|
||||
data->compression_level = LZMA_PRESET_DEFAULT;
|
||||
data->threads = 1;
|
||||
f->open = &archive_compressor_xz_open;
|
||||
f->write = archive_compressor_xz_write;
|
||||
f->close = archive_compressor_xz_close;
|
||||
f->free = archive_compressor_xz_free;
|
||||
f->options = &archive_compressor_xz_options;
|
||||
@@ -331,8 +332,6 @@ archive_compressor_xz_open(struct archive_write_filter *f)
|
||||
}
|
||||
}
|
||||
|
||||
f->write = archive_compressor_xz_write;
|
||||
|
||||
/* Initialize compression library. */
|
||||
if (f->code == ARCHIVE_FILTER_LZIP) {
|
||||
const struct option_value *val =
|
||||
|
||||
@@ -127,6 +127,7 @@ archive_write_add_filter_zstd(struct archive *_a)
|
||||
}
|
||||
f->data = data;
|
||||
f->open = &archive_compressor_zstd_open;
|
||||
f->write = archive_compressor_zstd_write;
|
||||
f->options = &archive_compressor_zstd_options;
|
||||
f->flush = &archive_compressor_zstd_flush;
|
||||
f->close = &archive_compressor_zstd_close;
|
||||
@@ -397,8 +398,6 @@ archive_compressor_zstd_open(struct archive_write_filter *f)
|
||||
}
|
||||
}
|
||||
|
||||
f->write = archive_compressor_zstd_write;
|
||||
|
||||
if (ZSTD_isError(ZSTD_initCStream(data->cstream,
|
||||
data->compression_level))) {
|
||||
archive_set_error(f->archive, ARCHIVE_ERRNO_MISC,
|
||||
@@ -564,7 +563,6 @@ archive_compressor_zstd_open(struct archive_write_filter *f)
|
||||
archive_string_sprintf(&as, " --long=%d", data->long_distance);
|
||||
}
|
||||
|
||||
f->write = archive_compressor_zstd_write;
|
||||
r = __archive_write_program_open(f, data->pdata, as.s);
|
||||
archive_string_free(&as);
|
||||
return (r);
|
||||
|
||||
Reference in new issue
Block a user