From 366ccf20745b23f1eb8554cbe17e6972271de002 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 11 Jun 2023 15:40:26 +0200 Subject: libio: remove precache from istream_advance_buffer Since the user has to call istream_get_buffered_data afterwards anyway, we can do the precache lazily. Signed-off-by: David Oberhollenzer --- lib/io/src/istream.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'lib/io/src/istream.c') diff --git a/lib/io/src/istream.c b/lib/io/src/istream.c index b4c709c..9340dd6 100644 --- a/lib/io/src/istream.c +++ b/lib/io/src/istream.c @@ -29,13 +29,10 @@ sqfs_s32 istream_read(istream_t *strm, void *data, size_t size) diff = size; memcpy(data, ptr, diff); + istream_advance_buffer(strm, diff); data = (char *)data + diff; size -= diff; total += diff; - - ret = istream_advance_buffer(strm, diff); - if (ret) - return -1; } return total; @@ -61,9 +58,7 @@ int istream_skip(istream_t *strm, sqfs_u64 size) diff = size; size -= diff; - - if (istream_advance_buffer(strm, diff)) - return -1; + istream_advance_buffer(strm, diff); } return 0; @@ -92,11 +87,10 @@ sqfs_s32 istream_splice(istream_t *in, ostream_t *out, sqfs_u32 size) if (ostream_append(out, ptr, diff)) return -1; - if (istream_advance_buffer(in, diff)) - return -1; total += diff; size -= diff; + istream_advance_buffer(in, diff); } return total; -- cgit v1.2.3