Skip to content

Commit

Permalink
add reserve calls
Browse files Browse the repository at this point in the history
  • Loading branch information
orlp committed Feb 27, 2025
1 parent 521eb17 commit 398e25a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 0 deletions.
1 change: 1 addition & 0 deletions crates/polars-compute/src/filter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ pub fn filter_with_bitmap(array: &dyn Array, mask: &Bitmap) -> Box<dyn Array> {
_ => {
let iter = SlicesIterator::new(mask);
let mut mutable = make_builder(array.dtype());
mutable.reserve(iter.slots());
iter.for_each(|(start, len)| {
mutable.subslice_extend(array, start, len, ShareStrategy::Always)
});
Expand Down
4 changes: 4 additions & 0 deletions crates/polars-compute/src/if_then_else/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ impl IfThenElseKernel for FixedSizeListArray {
let inner_dt = if_true.dtype().inner_dtype().unwrap();
let mut builder =
FixedSizeListArrayBuilder::new(if_true.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -30,6 +31,7 @@ impl IfThenElseKernel for FixedSizeListArray {
let inner_dt = if_false.dtype().inner_dtype().unwrap();
let mut builder =
FixedSizeListArrayBuilder::new(if_false.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -49,6 +51,7 @@ impl IfThenElseKernel for FixedSizeListArray {
let inner_dt = if_true.dtype().inner_dtype().unwrap();
let mut builder =
FixedSizeListArrayBuilder::new(if_true.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -72,6 +75,7 @@ impl IfThenElseKernel for FixedSizeListArray {
std::iter::once(if_false).collect_arr_trusted_with_dtype(dtype.clone());
let inner_dt = dtype.inner_dtype().unwrap();
let mut builder = FixedSizeListArrayBuilder::new(dtype.clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand Down
4 changes: 4 additions & 0 deletions crates/polars-compute/src/if_then_else/list.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ impl IfThenElseKernel for ListArray<i64> {
fn if_then_else(mask: &Bitmap, if_true: &Self, if_false: &Self) -> Self {
let inner_dt = if_true.dtype().inner_dtype().unwrap();
let mut builder = ListArrayBuilder::new(if_true.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -28,6 +29,7 @@ impl IfThenElseKernel for ListArray<i64> {
std::iter::once(if_true).collect_arr_trusted_with_dtype(if_false.dtype().clone());
let inner_dt = if_false.dtype().inner_dtype().unwrap();
let mut builder = ListArrayBuilder::new(if_false.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -46,6 +48,7 @@ impl IfThenElseKernel for ListArray<i64> {
std::iter::once(if_false).collect_arr_trusted_with_dtype(if_true.dtype().clone());
let inner_dt = if_true.dtype().inner_dtype().unwrap();
let mut builder = ListArrayBuilder::new(if_true.dtype().clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand All @@ -69,6 +72,7 @@ impl IfThenElseKernel for ListArray<i64> {
std::iter::once(if_false).collect_arr_trusted_with_dtype(dtype.clone());
let inner_dt = dtype.inner_dtype().unwrap();
let mut builder = ListArrayBuilder::new(dtype.clone(), make_builder(inner_dt));
builder.reserve(mask.len());
if_then_else_extend(
&mut builder,
mask,
Expand Down

0 comments on commit 398e25a

Please sign in to comment.