From 4e2cb2bdf19feb537f46bf8b0331d2736091fede Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 24 Aug 2026 03:28:11 +0900 Subject: [PATCH] compress: use dlopen_compress() in decompress_stream() --- src/basic/compress.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/src/basic/compress.c b/src/basic/compress.c index 55a204f9ce..7bacd65609 100644 --- a/src/basic/compress.c +++ b/src/basic/compress.c @@ -1702,7 +1702,7 @@ static int decompress_stream_write_callback(const void *data, size_t size, void } static int decompressor_new(Decompressor **ret, Compression type) { -#if HAVE_XZ || HAVE_LZ4 || HAVE_ZSTD || HAVE_ZLIB || HAVE_BZIP2 +#if HAVE_ZLIB || HAVE_BZIP2 int r; #endif @@ -1718,10 +1718,6 @@ static int decompressor_new(Decompressor **ret, Compression type) { #if HAVE_XZ case COMPRESSION_XZ: - r = dlopen_xz(LOG_DEBUG); - if (r < 0) - return r; - if (sym_lzma_stream_decoder(&c->xz, UINT64_MAX, LZMA_TELL_UNSUPPORTED_CHECK | LZMA_CONCATENATED) != LZMA_OK) return -EIO; break; @@ -1729,10 +1725,6 @@ static int decompressor_new(Decompressor **ret, Compression type) { #if HAVE_LZ4 case COMPRESSION_LZ4: { - r = dlopen_lz4(LOG_DEBUG); - if (r < 0) - return r; - size_t rc = sym_LZ4F_createDecompressionContext(&c->d_lz4, LZ4F_VERSION); if (sym_LZ4F_isError(rc)) return -ENOMEM; @@ -1743,10 +1735,6 @@ static int decompressor_new(Decompressor **ret, Compression type) { #if HAVE_ZSTD case COMPRESSION_ZSTD: - r = dlopen_zstd(LOG_DEBUG); - if (r < 0) - return r; - c->d_zstd = sym_ZSTD_createDCtx(); if (!c->d_zstd) return -ENOMEM; @@ -1755,10 +1743,6 @@ static int decompressor_new(Decompressor **ret, Compression type) { #if HAVE_ZLIB case COMPRESSION_GZIP: - r = dlopen_zlib(LOG_DEBUG); - if (r < 0) - return r; - r = sym_inflateInit2_(&c->gzip, /* windowBits= */ ZLIB_WBITS_GZIP, ZLIB_VERSION, (int) sizeof(c->gzip)); if (r != Z_OK) return -EIO; @@ -1767,10 +1751,6 @@ static int decompressor_new(Decompressor **ret, Compression type) { #if HAVE_BZIP2 case COMPRESSION_BZIP2: - r = dlopen_bzip2(LOG_DEBUG); - if (r < 0) - return r; - r = sym_BZ2_bzDecompressInit(&c->bzip2, /* verbosity= */ 0, /* small= */ 0); if (r != BZ_OK) return -EIO; @@ -1800,6 +1780,10 @@ int decompress_stream( assert(fdf >= 0); assert(fdt >= 0); + r = dlopen_compress(type, LOG_DEBUG); + if (r < 0) + return r; + r = decompressor_new(&c, type); if (r < 0) return r;