Skip to content

Commit 1de06be

Browse files
committed
Simplify getting mutable buffers
# Conflicts: # src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnArithmetic.cs # src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnArithmetic.tt
1 parent da2cb99 commit 1de06be

File tree

1 file changed

+17
-51
lines changed

1 file changed

+17
-51
lines changed

src/Microsoft.Data.Analysis/PrimitiveDataFrameColumnArithmetic.cs

Lines changed: 17 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -148,9 +148,7 @@ public void And(PrimitiveColumnContainer<bool> left, PrimitiveColumnContainer<bo
148148
{
149149
for (int b = 0; b < left.Buffers.Count; b++)
150150
{
151-
var buffer = left.Buffers[b];
152-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
153-
left.Buffers[b] = mutableBuffer;
151+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
154152
var span = mutableBuffer.Span;
155153
var otherSpan = right.Buffers[b].ReadOnlySpan;
156154
for (int i = 0; i < span.Length; i++)
@@ -163,9 +161,7 @@ public void And(PrimitiveColumnContainer<bool> column, bool scalar)
163161
{
164162
for (int b = 0; b < column.Buffers.Count; b++)
165163
{
166-
var buffer = column.Buffers[b];
167-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
168-
column.Buffers[b] = mutableBuffer;
164+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
169165
var span = mutableBuffer.Span;
170166
for (int i = 0; i < span.Length; i++)
171167
{
@@ -177,9 +173,7 @@ public void And(bool scalar, PrimitiveColumnContainer<bool> column)
177173
{
178174
for (int b = 0; b < column.Buffers.Count; b++)
179175
{
180-
var buffer = column.Buffers[b];
181-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
182-
column.Buffers[b] = mutableBuffer;
176+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
183177
var span = mutableBuffer.Span;
184178
for (int i = 0; i < span.Length; i++)
185179
{
@@ -191,9 +185,7 @@ public void Or(PrimitiveColumnContainer<bool> left, PrimitiveColumnContainer<boo
191185
{
192186
for (int b = 0; b < left.Buffers.Count; b++)
193187
{
194-
var buffer = left.Buffers[b];
195-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
196-
left.Buffers[b] = mutableBuffer;
188+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
197189
var span = mutableBuffer.Span;
198190
var otherSpan = right.Buffers[b].ReadOnlySpan;
199191
for (int i = 0; i < span.Length; i++)
@@ -206,9 +198,7 @@ public void Or(PrimitiveColumnContainer<bool> column, bool scalar)
206198
{
207199
for (int b = 0; b < column.Buffers.Count; b++)
208200
{
209-
var buffer = column.Buffers[b];
210-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
211-
column.Buffers[b] = mutableBuffer;
201+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
212202
var span = mutableBuffer.Span;
213203
for (int i = 0; i < span.Length; i++)
214204
{
@@ -220,9 +210,7 @@ public void Or(bool scalar, PrimitiveColumnContainer<bool> column)
220210
{
221211
for (int b = 0; b < column.Buffers.Count; b++)
222212
{
223-
var buffer = column.Buffers[b];
224-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
225-
column.Buffers[b] = mutableBuffer;
213+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
226214
var span = mutableBuffer.Span;
227215
for (int i = 0; i < span.Length; i++)
228216
{
@@ -234,9 +222,7 @@ public void Xor(PrimitiveColumnContainer<bool> left, PrimitiveColumnContainer<bo
234222
{
235223
for (int b = 0; b < left.Buffers.Count; b++)
236224
{
237-
var buffer = left.Buffers[b];
238-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
239-
left.Buffers[b] = mutableBuffer;
225+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
240226
var span = mutableBuffer.Span;
241227
var otherSpan = right.Buffers[b].ReadOnlySpan;
242228
for (int i = 0; i < span.Length; i++)
@@ -249,9 +235,7 @@ public void Xor(PrimitiveColumnContainer<bool> column, bool scalar)
249235
{
250236
for (int b = 0; b < column.Buffers.Count; b++)
251237
{
252-
var buffer = column.Buffers[b];
253-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
254-
column.Buffers[b] = mutableBuffer;
238+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
255239
var span = mutableBuffer.Span;
256240
for (int i = 0; i < span.Length; i++)
257241
{
@@ -263,9 +247,7 @@ public void Xor(bool scalar, PrimitiveColumnContainer<bool> column)
263247
{
264248
for (int b = 0; b < column.Buffers.Count; b++)
265249
{
266-
var buffer = column.Buffers[b];
267-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
268-
column.Buffers[b] = mutableBuffer;
250+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
269251
var span = mutableBuffer.Span;
270252
for (int i = 0; i < span.Length; i++)
271253
{
@@ -285,9 +267,7 @@ public void ElementwiseEquals(PrimitiveColumnContainer<bool> left, PrimitiveColu
285267
{
286268
for (int b = 0; b < left.Buffers.Count; b++)
287269
{
288-
var buffer = left.Buffers[b];
289-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
290-
left.Buffers[b] = mutableBuffer;
270+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
291271
var span = mutableBuffer.Span;
292272
var otherSpan = right.Buffers[b].ReadOnlySpan;
293273
for (int i = 0; i < span.Length; i++)
@@ -300,9 +280,7 @@ public void ElementwiseEquals(PrimitiveColumnContainer<bool> column, bool scalar
300280
{
301281
for (int b = 0; b < column.Buffers.Count; b++)
302282
{
303-
var buffer = column.Buffers[b];
304-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
305-
column.Buffers[b] = mutableBuffer;
283+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
306284
var span = mutableBuffer.Span;
307285
for (int i = 0; i < span.Length; i++)
308286
{
@@ -314,9 +292,7 @@ public void ElementwiseNotEquals(PrimitiveColumnContainer<bool> left, PrimitiveC
314292
{
315293
for (int b = 0; b < left.Buffers.Count; b++)
316294
{
317-
var buffer = left.Buffers[b];
318-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
319-
left.Buffers[b] = mutableBuffer;
295+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
320296
var span = mutableBuffer.Span;
321297
var otherSpan = right.Buffers[b].ReadOnlySpan;
322298
for (int i = 0; i < span.Length; i++)
@@ -329,9 +305,7 @@ public void ElementwiseNotEquals(PrimitiveColumnContainer<bool> column, bool sca
329305
{
330306
for (int b = 0; b < column.Buffers.Count; b++)
331307
{
332-
var buffer = column.Buffers[b];
333-
var mutableBuffer = DataFrameBuffer<bool>.GetMutableBuffer(buffer);
334-
column.Buffers[b] = mutableBuffer;
308+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
335309
var span = mutableBuffer.Span;
336310
for (int i = 0; i < span.Length; i++)
337311
{
@@ -483,9 +457,7 @@ public void ElementwiseEquals(PrimitiveColumnContainer<DateTime> left, Primitive
483457
{
484458
for (int b = 0; b < left.Buffers.Count; b++)
485459
{
486-
var buffer = left.Buffers[b];
487-
var mutableBuffer = DataFrameBuffer<DateTime>.GetMutableBuffer(buffer);
488-
left.Buffers[b] = mutableBuffer;
460+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
489461
var span = mutableBuffer.Span;
490462
var otherSpan = right.Buffers[b].ReadOnlySpan;
491463
for (int i = 0; i < span.Length; i++)
@@ -498,9 +470,7 @@ public void ElementwiseEquals(PrimitiveColumnContainer<DateTime> column, DateTim
498470
{
499471
for (int b = 0; b < column.Buffers.Count; b++)
500472
{
501-
var buffer = column.Buffers[b];
502-
var mutableBuffer = DataFrameBuffer<DateTime>.GetMutableBuffer(buffer);
503-
column.Buffers[b] = mutableBuffer;
473+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
504474
var span = mutableBuffer.Span;
505475
for (int i = 0; i < span.Length; i++)
506476
{
@@ -512,9 +482,7 @@ public void ElementwiseNotEquals(PrimitiveColumnContainer<DateTime> left, Primit
512482
{
513483
for (int b = 0; b < left.Buffers.Count; b++)
514484
{
515-
var buffer = left.Buffers[b];
516-
var mutableBuffer = DataFrameBuffer<DateTime>.GetMutableBuffer(buffer);
517-
left.Buffers[b] = mutableBuffer;
485+
var mutableBuffer = left.Buffers.GetOrCreateMutable(b);
518486
var span = mutableBuffer.Span;
519487
var otherSpan = right.Buffers[b].ReadOnlySpan;
520488
for (int i = 0; i < span.Length; i++)
@@ -527,9 +495,7 @@ public void ElementwiseNotEquals(PrimitiveColumnContainer<DateTime> column, Date
527495
{
528496
for (int b = 0; b < column.Buffers.Count; b++)
529497
{
530-
var buffer = column.Buffers[b];
531-
var mutableBuffer = DataFrameBuffer<DateTime>.GetMutableBuffer(buffer);
532-
column.Buffers[b] = mutableBuffer;
498+
var mutableBuffer = column.Buffers.GetOrCreateMutable(b);
533499
var span = mutableBuffer.Span;
534500
for (int i = 0; i < span.Length; i++)
535501
{

0 commit comments

Comments
 (0)