It is not the most efficient way, but many implementations do that when type casting is required. For example, the file on disk is ushort but the user code is requiring uchar. But the same read buffer can be re-used if the requested type is the same size as on-disk type. In that case, you would process the read buffer in-place.
Ah great, thanks @dzenanz . I don’t have a need to convert types so I can work directly on the buffer. Now I’ll just need to figure how how step around it in the right order to touch only the values I’m interested in.