summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/archive_private.h
diff options
context:
space:
mode:
authorcperciva <cperciva@FreeBSD.org>2007-01-04 12:45:00 +0000
committercperciva <cperciva@FreeBSD.org>2007-01-04 12:45:00 +0000
commit3756545e6cb2c9386c5ba5538ad35065e0ffe8a0 (patch)
tree35a0125ff7a7fb9d2bf0e904d923613dc0ac3a98 /lib/libarchive/archive_private.h
parentae96850d62b1d020b090d570ced8362ba847a7d1 (diff)
downloadFreeBSD-src-3756545e6cb2c9386c5ba5538ad35065e0ffe8a0.zip
FreeBSD-src-3756545e6cb2c9386c5ba5538ad35065e0ffe8a0.tar.gz
Convert compression_skip from taking a size_t skip length request and
returning the length skipped in a ssize_t to using off_t for both. This does not break any A[BP]Is, since compression_skip is entirely internal to libarchive. If a skip request is > SSIZE_MAX, don't pass it down to the client layer skip function, since those still uses size_t / ssize_t. Instead, just read the data and throw it away. With this commit, libarchive/bsdtar should now successfully skip archive entries of >2GB on 32-bit systems, but does so slower than necessary. The performance will improve with a future A[BP]I breaking commit which makes client layer skip functions use off_t. Discussed with: kientzle MFC after: 1 week
Diffstat (limited to 'lib/libarchive/archive_private.h')
-rw-r--r--lib/libarchive/archive_private.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libarchive/archive_private.h b/lib/libarchive/archive_private.h
index 300b79d..0fa4138 100644
--- a/lib/libarchive/archive_private.h
+++ b/lib/libarchive/archive_private.h
@@ -133,7 +133,7 @@ struct archive {
ssize_t (*compression_read_ahead)(struct archive *,
const void **, size_t request);
ssize_t (*compression_read_consume)(struct archive *, size_t);
- ssize_t (*compression_skip)(struct archive *, size_t);
+ off_t (*compression_skip)(struct archive *, off_t);
/*
* Format detection is mostly the same as compression
OpenPOWER on IntegriCloud