When MutableArrayData::extend is called on a ListView array, it copies the offsets and sizes buffers but does not copy the underlying child values. The result is an array whose offsets/sizes point into an empty values array.
// Build a ListViewArray: [[1, 2], null, [3]]
let list: ListViewArray = /* ... */;
let data = list.to_data();
let mut mutable = MutableArrayData::new(vec![&data], false, 3);
mutable.extend(0, 0, 3);
let result_list_view: &ListViewArray = /* ... */;
// Offsets and sizes were copied, but values array is empty:
// offsets: [0, 2, 2], sizes: [2, 0, 1], values.len(): 0
See repro test here: vegarsti@1ee5ae6