@@ -257,31 +257,23 @@ public void Apply<TResult>(Func<T?, TResult?> func, PrimitiveColumnContainer<TRe
257
257
{
258
258
for ( int b = 0 ; b < Buffers . Count ; b ++ )
259
259
{
260
- ReadOnlyDataFrameBuffer < T > buffer = Buffers [ b ] ;
261
- long prevLength = checked ( Buffers [ 0 ] . Length * b ) ;
262
- DataFrameBuffer < T > mutableBuffer = DataFrameBuffer < T > . GetMutableBuffer ( buffer ) ;
263
- Buffers [ b ] = mutableBuffer ;
264
- Span < T > span = mutableBuffer . Span ;
265
- DataFrameBuffer < byte > mutableNullBitMapBuffer = DataFrameBuffer < byte > . GetMutableBuffer ( NullBitMapBuffers [ b ] ) ;
266
- NullBitMapBuffers [ b ] = mutableNullBitMapBuffer ;
267
- Span < byte > nullBitMapSpan = mutableNullBitMapBuffer . Span ;
260
+ ReadOnlyDataFrameBuffer < T > sourceBuffer = Buffers [ b ] ;
261
+ ReadOnlySpan < byte > sourceNullBitMap = NullBitMapBuffers [ b ] . ReadOnlySpan ;
268
262
269
263
ReadOnlyDataFrameBuffer < TResult > resultBuffer = resultContainer . Buffers [ b ] ;
270
- long resultPrevLength = checked ( resultContainer . Buffers [ 0 ] . Length * b ) ;
271
264
DataFrameBuffer < TResult > resultMutableBuffer = DataFrameBuffer < TResult > . GetMutableBuffer ( resultBuffer ) ;
272
265
resultContainer . Buffers [ b ] = resultMutableBuffer ;
273
266
Span < TResult > resultSpan = resultMutableBuffer . Span ;
274
267
DataFrameBuffer < byte > resultMutableNullBitMapBuffer = DataFrameBuffer < byte > . GetMutableBuffer ( resultContainer . NullBitMapBuffers [ b ] ) ;
275
268
resultContainer . NullBitMapBuffers [ b ] = resultMutableNullBitMapBuffer ;
276
269
Span < byte > resultNullBitMapSpan = resultMutableNullBitMapBuffer . Span ;
277
270
278
- for ( int i = 0 ; i < span . Length ; i ++ )
271
+ for ( int i = 0 ; i < Buffers [ b ] . Length ; i ++ )
279
272
{
280
- long curIndex = i + prevLength ;
281
- bool isValid = IsValid ( nullBitMapSpan , i ) ;
282
- TResult ? value = func ( isValid ? span [ i ] : default ( T ? ) ) ;
273
+ bool isValid = IsValid ( sourceNullBitMap , i ) ;
274
+ TResult ? value = func ( isValid ? sourceBuffer [ i ] : default ( T ? ) ) ;
283
275
resultSpan [ i ] = value . GetValueOrDefault ( ) ;
284
- SetValidityBit ( resultNullBitMapSpan , i , value != null ) ;
276
+ resultContainer . SetValidityBit ( resultNullBitMapSpan , i , value != null ) ;
285
277
}
286
278
}
287
279
}
0 commit comments