Merge pull request #8364 from haberman/ruby-memory-footprint

[Ruby] Fixed quadratic memory usage when appending to arrays.
pull/8369/head
Joshua Haberman 4 years ago committed by GitHub
commit 069f989b48
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      ruby/ext/google/protobuf_c/ruby-upb.c

@ -6663,10 +6663,9 @@ void upb_array_set(upb_array *arr, size_t i, upb_msgval val) {
} }
bool upb_array_append(upb_array *arr, upb_msgval val, upb_arena *arena) { bool upb_array_append(upb_array *arr, upb_msgval val, upb_arena *arena) {
if (!_upb_array_realloc(arr, arr->len + 1, arena)) { if (!upb_array_resize(arr, arr->len + 1, arena)) {
return false; return false;
} }
arr->len++;
upb_array_set(arr, arr->len - 1, val); upb_array_set(arr, arr->len - 1, val);
return true; return true;
} }

Loading…
Cancel
Save