Commit aead984 1 parent 1fb69e4 commit aead984 Copy full SHA for aead984
File tree 1 file changed +9
-13
lines changed
1 file changed +9
-13
lines changed Original file line number Diff line number Diff line change @@ -696,21 +696,17 @@ impl ArrayData {
696
696
///
697
697
/// This also aligns buffers of children data
698
698
pub fn align_buffers ( & mut self ) {
699
- // use a dynamic stack to avoid stack overflow for very deeply nested arrays
700
- let mut stack: Vec < & mut ArrayData > = vec ! [ self ] ;
701
- while let Some ( data) = stack. pop ( ) {
702
- let layout = layout ( & data. data_type ) ;
703
- for ( buffer, spec) in data. buffers . iter_mut ( ) . zip ( & layout. buffers ) {
704
- if let BufferSpec :: FixedWidth { alignment, .. } = spec {
705
- if buffer. as_ptr ( ) . align_offset ( * alignment) != 0 {
706
- * buffer = Buffer :: from_slice_ref ( buffer. as_ref ( ) ) ;
707
- }
699
+ let layout = layout ( & self . data_type ) ;
700
+ for ( buffer, spec) in self . buffers . iter_mut ( ) . zip ( & layout. buffers ) {
701
+ if let BufferSpec :: FixedWidth { alignment, .. } = spec {
702
+ if buffer. as_ptr ( ) . align_offset ( * alignment) != 0 {
703
+ * buffer = Buffer :: from_slice_ref ( buffer. as_ref ( ) ) ;
708
704
}
709
705
}
710
- // align children data recursively
711
- for child in data. child_data . iter_mut ( ) {
712
- stack . push ( child ) ;
713
- }
706
+ }
707
+ // align children data recursively
708
+ for data in self . child_data . iter_mut ( ) {
709
+ data . align_buffers ( )
714
710
}
715
711
}
716
712
You can’t perform that action at this time.
0 commit comments