Skip to content
Snippets Groups Projects
Commit 9a0356b1 authored by Muxi Yan's avatar Muxi Yan
Browse files

Fix a bug in slice_buffer:maybe_embiggen

parent 58500218
No related branches found
No related tags found
No related merge requests found
......@@ -46,11 +46,6 @@
#define GROW(x) (3 * (x) / 2)
static void maybe_embiggen(grpc_slice_buffer *sb) {
if (sb->base_slices != sb->slices) {
memmove(sb->base_slices, sb->slices, sb->count * sizeof(grpc_slice));
sb->slices = sb->base_slices;
}
/* How far away from sb->base_slices is sb->slices pointer */
size_t slice_offset = (size_t)(sb->slices - sb->base_slices);
size_t slice_count = sb->count + slice_offset;
......@@ -61,12 +56,15 @@ static void maybe_embiggen(grpc_slice_buffer *sb) {
if (sb->base_slices == sb->inlined) {
sb->base_slices = gpr_malloc(sb->capacity * sizeof(grpc_slice));
memcpy(sb->base_slices, sb->inlined, slice_count * sizeof(grpc_slice));
sb->slices = sb->base_slices + slice_offset;
} else {
if (sb->base_slices != sb->slices) {
memmove(sb->base_slices, sb->slices, sb->count * sizeof(grpc_slice));
}
sb->base_slices =
gpr_realloc(sb->base_slices, sb->capacity * sizeof(grpc_slice));
sb->slices = sb->base_slices;
}
sb->slices = sb->base_slices + slice_offset;
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment