summaryrefslogtreecommitdiff
path: root/event_tagging.c
diff options
context:
space:
mode:
authorNiels Provos <provos@gmail.com>2007-09-16 02:26:37 +0000
committerNiels Provos <provos@gmail.com>2007-09-16 02:26:37 +0000
commit7b7742fce7b694977579b9f2e11bc974b1c346da (patch)
tree2b016e5991938c9d728ad28997c0fa1c3c667153 /event_tagging.c
parentbfd27f58da9d5fba6e2ed0c0d4f436fa240dbc47 (diff)
downloadlibevent-7b7742fce7b694977579b9f2e11bc974b1c346da.tar.gz
optimize by removing a variable
svn:r433
Diffstat (limited to 'event_tagging.c')
-rw-r--r--event_tagging.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/event_tagging.c b/event_tagging.c
index 955b3a0c..ddc281e1 100644
--- a/event_tagging.c
+++ b/event_tagging.c
@@ -155,26 +155,25 @@ decode_int_internal(uint32_t *pnumber, struct evbuffer *evbuf, int dodrain)
uint32_t number = 0;
uint8_t *data = EVBUFFER_DATA(evbuf);
int len = EVBUFFER_LENGTH(evbuf);
- int nibbles = 0, off;
+ int nibbles = 0;
if (!len)
return (-1);
nibbles = ((data[0] & 0xf0) >> 4) + 1;
- if (nibbles > 8 || (nibbles >> 1) > len - 1)
+ if (nibbles > 8 || (nibbles >> 1) + 1 > len)
return (-1);
+ len = (nibbles >> 1) + 1;
- off = nibbles;
- while (off > 0) {
+ while (nibbles > 0) {
number <<= 4;
- if (off & 0x1)
- number |= data[off >> 1] & 0x0f;
+ if (nibbles & 0x1)
+ number |= data[nibbles >> 1] & 0x0f;
else
- number |= (data[off >> 1] & 0xf0) >> 4;
- off--;
+ number |= (data[nibbles >> 1] & 0xf0) >> 4;
+ nibbles--;
}
- len = (nibbles >> 1) + 1;
if (dodrain)
evbuffer_drain(evbuf, len);