mr-smidge commented on a change in pull request #7158: URL: https://github.com/apache/arrow/pull/7158#discussion_r428555530
########## File path: csharp/test/Apache.Arrow.Tests/BooleanArrayTests.cs ########## @@ -18,6 +18,8 @@ namespace Apache.Arrow.Tests { + using System.Linq; Review comment: Done (default behaviour by my IDE, whoops). ########## File path: csharp/src/Apache.Arrow/ArrowBuffer.Builder.cs ########## @@ -80,27 +140,59 @@ public Builder<T> AppendRange(IEnumerable<T> values) return this; } - public Builder<T> Reserve(int capacity) + /// <summary> + /// Reserve a given number of items' additional capacity. + /// </summary> + /// <param name="additionalCapacity">Number of items of required additional capacity.</param> + /// <returns>Returns the builder (for fluent-style composition).</returns> + public Builder<T> Reserve(int additionalCapacity) { - EnsureCapacity(capacity); + if (additionalCapacity < 0) + { + throw new ArgumentOutOfRangeException(nameof(additionalCapacity)); + } + + EnsureAdditionalCapacity(additionalCapacity); return this; } + /// <summary> + /// Resize the buffer to a given size. + /// </summary> + /// <remarks> + /// Note that if the required capacity is smaller than the current length of the populated buffer so far, + /// the buffer will be truncated and items at the end of the buffer will be lost. + /// </remarks> + /// <remarks> + /// Note also that a negative capacity will result in the buffer being resized to zero. + /// </remarks> + /// <param name="capacity">Number of items of required capacity.</param> + /// <returns>Returns the builder (for fluent-style composition).</returns> public Builder<T> Resize(int capacity) { + capacity = capacity < 0 ? 0 : capacity; EnsureCapacity(capacity); Length = Math.Max(0, capacity); return this; } + /// <summary> + /// Clear all contents appended so far. + /// </summary> + /// <returns>Returns the builder (for fluent-style composition).</returns> public Builder<T> Clear() { Span.Fill(default); Length = 0; return this; } + /// <summary> + /// Build an Arrow buffer from the appended contents so far. + /// </summary> + /// <param name="allocator">Optional memory allocator.</param> + /// <returns>Returns the builder (for fluent-style composition).</returns> Review comment: Fixed. ---------------------------------------------------------------- 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