see prev. checkin (missed these files). Change ownership rule for streams to the
skia std. of receiver calls ref() if it needs to, but regardless, the caller
always manages/balances its own ownership.



git-svn-id: http://skia.googlecode.com/svn/trunk@121 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/images/SkImageRef.h b/include/images/SkImageRef.h
index e94b7d4..26ade5e 100644
--- a/include/images/SkImageRef.h
+++ b/include/images/SkImageRef.h
@@ -35,9 +35,9 @@
         that this imageref is the only owner of the stream. i.e. - sole
         ownership of the stream object is transferred to this imageref object.
     
-        @param stream The stream containing the encoded image data. Ownership
-                      of this stream is transferred to the imageref, and
-                      therefore the stream's ownercount must be 1.
+        @param stream The stream containing the encoded image data. This may be
+                      retained (by calling ref()), so the caller should not
+                      explicitly delete it.
         @param config The preferred config of the decoded bitmap.
         @param sampleSize Requested sampleSize for decoding. Defaults to 1.
     */
diff --git a/src/images/SkImageRef.cpp b/src/images/SkImageRef.cpp
index 90c37b6..8b14375 100644
--- a/src/images/SkImageRef.cpp
+++ b/src/images/SkImageRef.cpp
@@ -15,8 +15,7 @@
                        int sampleSize)
         : SkPixelRef(&gImageRefMutex), fErrorInDecoding(false) {
     SkASSERT(stream);
-    SkASSERT(1 == stream->getRefCnt());
-
+    stream->ref();
     fStream = stream;
     fConfig = config;
     fSampleSize = sampleSize;
@@ -36,7 +35,7 @@
               this, fConfig, (int)fStream->getLength());
 #endif
 
-    delete fStream;
+    fStream->unref();
 }
 
 bool SkImageRef::getInfo(SkBitmap* bitmap) {