mark SkCanvas layer device as immutable before compositing it on restore

Making a SkSpecialImage via snapSpecial on the layer device during restore
triggers an unnecessary and problematic copy. The layer device will never
be further modified since it is about to be destroyed, but the snapshot
does not know of this since it is never informed.

This ensures that the layer device's internal bitmap is properly marked
as immutable before it is composited so that snapshotting it does not
create a copy anymore.

Bug: skia:
Change-Id: I13dd3b5c0e1b8e7c9dfededba53d21dbac2d5c63
Reviewed-on: https://skia-review.googlesource.com/155635
Reviewed-by: Robert Phillips <robertphillips@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
3 files changed