jorgecarleitao opened a new pull request #8645:
URL: https://github.com/apache/arrow/pull/8645


   This PR addresses 3 small issues on `MutableBuffer`:
   
   1. `write_bytes` is incorrect, as it double-increments `len`: the length is 
incremented both on `self.write` and also by `write_bytes` itself. This leads 
to more allocations than necessary.
   2. `write` is implemented from the trait `io::Write`. However, this trait is 
suitable for fallible IO operations. In the case of a write to memory, it isn't 
really fallible because we can always call `reserve` to allocate more space.
   3. `write` and `write_bytes` are really similar.
   
   This PR replaces both `write_bytes` and `write` by `extend_from_slice` 
(inspired by 
[`Vec::extend_from_slice`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.extend_from_slice).
 This has the same performance (a single capacity comparison) or better. 
Compared to the current code, the main difference is that this is infallible as 
it `reserve` more space if the required size is insufficient.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to