SurfaceComposerClient BLAST: cacheBuffers before writing transaction to parcel.

If we write the Transaction to a parcel, we want to ensure the Buffers are cached
before crossing the IPC boundary. Otherwise the receiving party will cache the buffers
but is unlikely to use them again as they are owned by the other process.
You may be asking yourself, is this const cast safe? Const cast is safe up
until the point where you try and write to an object that was originally const at which
point we enter undefined behavior. In this case we are safe though, because there are
two possibilities:
   1. The SurfaceComposerClient::Transaction was originally non-const. Safe.
   2. It was originall const! In this case not only was it useless, but it by definition
      contains no composer states and so cacheBuffers will not perform any writes.

Bug: 153561718
Test: Existing tests pass. Manual test of BLAST Sync Engine.
Change-Id: Ibb5425955f3d8c40f8c227d8911989dd76f8afe4
1 file changed