diff options
author | Neal H. Walfield <[email protected]> | 2015-08-09 14:53:51 +0000 |
---|---|---|
committer | Neal H. Walfield <[email protected]> | 2015-08-20 12:16:16 +0000 |
commit | 12fc56bcb51d984a6e86fc1eb7952f9976c67043 (patch) | |
tree | 1007a2b33197caab1ef83918718a3dc726b29496 | |
parent | common/iobuf.c: Remove dead code (directfp). (diff) | |
download | gnupg-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.c | 8 | ||||
-rw-r--r-- | common/iobuf.h | 6 |
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 */ |