JPEGImageDecoder calls data() to consolidate the entire buffer into one piece. This involves memcpys and can possibly avoided by using getSomeData().
Noticed in the animated webp patch bug 113124, that a member variable m_demux (a webp demux object needed for decoding) is used to read the SharedBuffer::data(). The m_demux object internally maintains pointers into that data(). That's probably ok for a single pass through decode(). However, for progessive decoding of large webp images, decode() is called multiple times. Any new calls SharedBuffer::data() in any decode() might cause that data() to be consolidated if I'm reading this bug correctly?