expose skdata -> cgdataprovider helper



git-svn-id: http://skia.googlecode.com/svn/trunk@8374 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/utils/mac/SkCGUtils.h b/include/utils/mac/SkCGUtils.h
index 46f8996..84b95a4 100644
--- a/include/utils/mac/SkCGUtils.h
+++ b/include/utils/mac/SkCGUtils.h
@@ -19,6 +19,7 @@
 #endif
 
 class SkBitmap;
+class SkData;
 class SkStream;
 
 /**
@@ -60,5 +61,6 @@
  *  Now when the provider is finally deleted, it will delete the stream.
  */
 CGDataProviderRef SkCreateDataProviderFromStream(SkStream*);
+CGDataProviderRef SkCreateDataProviderFromStream(SkData*);
 
 #endif
diff --git a/src/utils/mac/SkStream_mac.cpp b/src/utils/mac/SkStream_mac.cpp
index afb87fb..3482a6b 100644
--- a/src/utils/mac/SkStream_mac.cpp
+++ b/src/utils/mac/SkStream_mac.cpp
@@ -10,7 +10,7 @@
 
 // This is used by CGDataProviderCreateWithData
 
-static void unref_data_proc(void* info, const void* addr, size_t size) {
+static void unref_proc(void* info, const void* addr, size_t size) {
     SkASSERT(info);
     ((SkRefCnt*)info)->unref();
 }
@@ -38,14 +38,14 @@
 
 CGDataProviderRef SkCreateDataProviderFromStream(SkStream* stream) {
     stream->ref();  // unref will be called when the provider is deleted
-
+    
     const void* addr = stream->getMemoryBase();
     if (addr) {
         // special-case when the stream is just a block of ram
         return CGDataProviderCreateWithData(stream, addr, stream->getLength(),
-                                            unref_data_proc);
+                                            unref_proc);
     }
-
+    
     CGDataProviderSequentialCallbacks rec;
     sk_bzero(&rec, sizeof(rec));
     rec.version = 0;
@@ -55,3 +55,14 @@
     rec.releaseInfo = release_info_proc;
     return CGDataProviderCreateSequential(stream, &rec);
 }
+
+///////////////////////////////////////////////////////////////////////////////
+
+#include "SkData.h"
+
+CGDataProviderRef SkCreateDataProviderFromStream(SkData* data) {
+    data->ref();
+    return CGDataProviderCreateWithData(data, data->data(), data->size(),
+                                            unref_proc);
+}
+