input_curl: moved code to consume_buffer()
Added some assertions.
This commit is contained in:
parent
7779e4133a
commit
46df0fd7dc
@ -207,6 +207,31 @@ input_curl_select(struct input_curl *c)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark a part of the buffer object as consumed.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
consume_buffer(struct buffer *buffer, size_t length,
|
||||||
|
struct list_head *rewind_head)
|
||||||
|
{
|
||||||
|
assert(buffer != NULL);
|
||||||
|
assert(buffer->consumed < buffer->size);
|
||||||
|
|
||||||
|
buffer->consumed += length;
|
||||||
|
if (buffer->consumed < buffer->size)
|
||||||
|
return;
|
||||||
|
|
||||||
|
assert(buffer->consumed == buffer->size);
|
||||||
|
|
||||||
|
list_del(&buffer->siblings);
|
||||||
|
|
||||||
|
if (rewind_head != NULL)
|
||||||
|
/* append this buffer to the rewind buffer list */
|
||||||
|
list_add_tail(&buffer->siblings, rewind_head);
|
||||||
|
else
|
||||||
|
g_free(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
static size_t
|
static size_t
|
||||||
read_from_buffer(struct buffer *buffer, void *dest, size_t length,
|
read_from_buffer(struct buffer *buffer, void *dest, size_t length,
|
||||||
struct list_head *rewind_head)
|
struct list_head *rewind_head)
|
||||||
@ -218,18 +243,7 @@ read_from_buffer(struct buffer *buffer, void *dest, size_t length,
|
|||||||
length = buffer->size - buffer->consumed;
|
length = buffer->size - buffer->consumed;
|
||||||
|
|
||||||
memcpy(dest, buffer->data + buffer->consumed, length);
|
memcpy(dest, buffer->data + buffer->consumed, length);
|
||||||
|
consume_buffer(buffer, length, rewind_head);
|
||||||
buffer->consumed += length;
|
|
||||||
if (buffer->consumed == buffer->size) {
|
|
||||||
list_del(&buffer->siblings);
|
|
||||||
|
|
||||||
if (rewind_head != NULL)
|
|
||||||
/* append this buffer to the rewind buffer list */
|
|
||||||
list_add_tail(&buffer->siblings, rewind_head);
|
|
||||||
else
|
|
||||||
g_free(buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user