SkDiscardablePixelRef objects are now marked immutable.

I also specifically mentioned in the SkImageGenerator documentation
that it should always return the same information on subsequent calls
to getInfo() and getPixels().

Motivation: When a bitmap is recorded into a SkPicture, it will choose
whether to shallow- or deep-copy itself into the SkBitmapHeap based on
the immutable flag.  Failing to set it would make picture recording slow.

BUG=
R=fmalita@google.com, reed@google.com, scroggo@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/99303003

git-svn-id: http://skia.googlecode.com/svn/trunk@12445 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/lazy/SkDiscardablePixelRef.cpp b/src/lazy/SkDiscardablePixelRef.cpp
index b6e1b10..4e19c7f 100644
--- a/src/lazy/SkDiscardablePixelRef.cpp
+++ b/src/lazy/SkDiscardablePixelRef.cpp
@@ -20,6 +20,9 @@
     SkASSERT(fGenerator != NULL);
     SkASSERT(fSize > 0);
     SkASSERT(fRowBytes > 0);
+    // The SkImageGenerator contract requires fGenerator to always
+    // decode the same image on each call to getPixels().
+    this->setImmutable();
 }
 
 SkDiscardablePixelRef::~SkDiscardablePixelRef() {