aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeal H. Walfield <[email protected]>2015-08-09 14:53:51 +0000
committerNeal H. Walfield <[email protected]>2015-08-20 12:16:16 +0000
commit12fc56bcb51d984a6e86fc1eb7952f9976c67043 (patch)
tree1007a2b33197caab1ef83918718a3dc726b29496
parentcommon/iobuf.c: Remove dead code (directfp). (diff)
downloadgnupg-12fc56bcb51d984a6e86fc1eb7952f9976c67043.tar.gz
gnupg-12fc56bcb51d984a6e86fc1eb7952f9976c67043.zip
common/iobuf.h: Clarify semantics of nofast. Simplify implementation.
* common/iobuf.h (struct iobuf_struct): Clarify semantics of nofast. Simplify use of nofast to implement just these semantics. -- Signed-off-by: Neal H. Walfield <[email protected]>.
-rw-r--r--common/iobuf.c8
-rw-r--r--common/iobuf.h6
2 files changed, 9 insertions, 5 deletions
diff --git a/common/iobuf.c b/common/iobuf.c
index 479038ad5..3a68c2669 100644
--- a/common/iobuf.c
+++ b/common/iobuf.c
@@ -1651,7 +1651,7 @@ iobuf_push_filter2 (iobuf_t a,
/* disable nlimit for the new stream */
a->ntotal = b->ntotal + b->nbytes;
a->nlimit = a->nbytes = 0;
- a->nofast &= ~1;
+ a->nofast = 0;
/* make a link from the new stream to the original stream */
a->chain = b;
@@ -2124,9 +2124,9 @@ void
iobuf_set_limit (iobuf_t a, off_t nlimit)
{
if (nlimit)
- a->nofast |= 1;
+ a->nofast = 1;
else
- a->nofast &= ~1;
+ a->nofast = 0;
a->nlimit = nlimit;
a->ntotal += a->nbytes;
a->nbytes = 0;
@@ -2308,7 +2308,7 @@ iobuf_seek (iobuf_t a, off_t newpos)
a->d.start = 0;
a->nbytes = 0;
a->nlimit = 0;
- a->nofast &= ~1;
+ a->nofast = 0;
a->ntotal = newpos;
a->error = 0;
/* remove filters, but the last */
diff --git a/common/iobuf.h b/common/iobuf.h
index c6877e0fa..a69380959 100644
--- a/common/iobuf.h
+++ b/common/iobuf.h
@@ -75,7 +75,11 @@ struct iobuf_struct
off_t nlimit;
off_t nbytes; /* Used together with nlimit. */
off_t ntotal; /* Total bytes read (position of stream). */
- int nofast; /* Used by the iobuf_get (). */
+
+ /* Whether we need to read from the filter one byte at a time or
+ whether we can do bulk reads. We need to read one byte at a time
+ if a limit (set via iobuf_set_limit) is active. */
+ int nofast;
struct
{
size_t size; /* Allocated size */