use `takebuf_array` -- never reach directly into the `.data` or `.ptr` fields of an IOBuffer (the rest might be OK to access directly, but it is highly inadvisable)