optimize by removing a variable

svn:r433
This commit is contained in:
Niels Provos 2007-09-16 02:26:37 +00:00
parent bfd27f58da
commit 7b7742fce7

View File

@ -155,26 +155,25 @@ decode_int_internal(uint32_t *pnumber, struct evbuffer *evbuf, int dodrain)
uint32_t number = 0; uint32_t number = 0;
uint8_t *data = EVBUFFER_DATA(evbuf); uint8_t *data = EVBUFFER_DATA(evbuf);
int len = EVBUFFER_LENGTH(evbuf); int len = EVBUFFER_LENGTH(evbuf);
int nibbles = 0, off; int nibbles = 0;
if (!len) if (!len)
return (-1); return (-1);
nibbles = ((data[0] & 0xf0) >> 4) + 1; nibbles = ((data[0] & 0xf0) >> 4) + 1;
if (nibbles > 8 || (nibbles >> 1) > len - 1) if (nibbles > 8 || (nibbles >> 1) + 1 > len)
return (-1); return (-1);
len = (nibbles >> 1) + 1;
off = nibbles; while (nibbles > 0) {
while (off > 0) {
number <<= 4; number <<= 4;
if (off & 0x1) if (nibbles & 0x1)
number |= data[off >> 1] & 0x0f; number |= data[nibbles >> 1] & 0x0f;
else else
number |= (data[off >> 1] & 0xf0) >> 4; number |= (data[nibbles >> 1] & 0xf0) >> 4;
off--; nibbles--;
} }
len = (nibbles >> 1) + 1;
if (dodrain) if (dodrain)
evbuffer_drain(evbuf, len); evbuffer_drain(evbuf, len);