In buflib_buffer_shift(), properly update handle->alloc values, which are char * and not union buflib data *
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31066 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
99ea0c5051
commit
bd360b422a
1 changed files with 3 additions and 2 deletions
|
@ -366,12 +366,13 @@ buflib_buffer_shift(struct buflib_context *ctx, int shift)
|
||||||
{
|
{
|
||||||
memmove(ctx->buf_start + shift, ctx->buf_start,
|
memmove(ctx->buf_start + shift, ctx->buf_start,
|
||||||
(ctx->alloc_end - ctx->buf_start) * sizeof(union buflib_data));
|
(ctx->alloc_end - ctx->buf_start) * sizeof(union buflib_data));
|
||||||
|
ctx->buf_start += shift;
|
||||||
|
ctx->alloc_end += shift;
|
||||||
|
shift *= sizeof(union buflib_data);
|
||||||
union buflib_data *handle;
|
union buflib_data *handle;
|
||||||
for (handle = ctx->last_handle; handle < ctx->handle_table; handle++)
|
for (handle = ctx->last_handle; handle < ctx->handle_table; handle++)
|
||||||
if (handle->alloc)
|
if (handle->alloc)
|
||||||
handle->alloc += shift;
|
handle->alloc += shift;
|
||||||
ctx->buf_start += shift;
|
|
||||||
ctx->alloc_end += shift;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Shift buffered items up by size bytes, or as many as possible if size == 0.
|
/* Shift buffered items up by size bytes, or as many as possible if size == 0.
|
||||||
|
|
Loading…
Reference in a new issue