summaryrefslogtreecommitdiff
path: root/libarchive/archive_read_support_filter_grzip.c
diff options
context:
space:
mode:
authorEmil Velikov <emil.l.velikov@gmail.com>2020-03-14 15:47:22 +0000
committerEmil Velikov <emil.l.velikov@gmail.com>2021-10-23 19:26:23 +0100
commit64b82ac5c8cb5d822962af988dd075331d997b79 (patch)
treecc8b826ca62145d14c2bd3345544ac73c8b77e23 /libarchive/archive_read_support_filter_grzip.c
parent0e0d31a7d2e7f66aab5a1c43579afbe864851200 (diff)
downloadlibarchive-64b82ac5c8cb5d822962af988dd075331d997b79.tar.gz
reader: introduce archive_read_filter_bidder::vtable
Provides a clear separation between RW data and RO executable code. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Diffstat (limited to 'libarchive/archive_read_support_filter_grzip.c')
-rw-r--r--libarchive/archive_read_support_filter_grzip.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libarchive/archive_read_support_filter_grzip.c b/libarchive/archive_read_support_filter_grzip.c
index 782720ca..20fb18ae 100644
--- a/libarchive/archive_read_support_filter_grzip.c
+++ b/libarchive/archive_read_support_filter_grzip.c
@@ -54,6 +54,12 @@ static int grzip_bidder_bid(struct archive_read_filter_bidder *,
static int grzip_bidder_init(struct archive_read_filter *);
+static const struct archive_read_filter_bidder_vtable
+grzip_bidder_vtable = {
+ .bid = grzip_bidder_bid,
+ .init = grzip_bidder_init,
+};
+
int
archive_read_support_filter_grzip(struct archive *_a)
{
@@ -67,9 +73,7 @@ archive_read_support_filter_grzip(struct archive *_a)
return (ARCHIVE_FATAL);
reader->data = NULL;
- reader->bid = grzip_bidder_bid;
- reader->init = grzip_bidder_init;
- reader->free = NULL;
+ reader->vtable = &grzip_bidder_vtable;
/* This filter always uses an external program. */
archive_set_error(_a, ARCHIVE_ERRNO_MISC,
"Using external grzip program for grzip decompression");