diff options
author | Emil Velikov <emil.l.velikov@gmail.com> | 2020-03-14 15:47:22 +0000 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2021-10-23 19:26:23 +0100 |
commit | 64b82ac5c8cb5d822962af988dd075331d997b79 (patch) | |
tree | cc8b826ca62145d14c2bd3345544ac73c8b77e23 /libarchive/archive_read_support_filter_grzip.c | |
parent | 0e0d31a7d2e7f66aab5a1c43579afbe864851200 (diff) | |
download | libarchive-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.c | 10 |
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"); |