Index: src/utils/mac/SkStream_mac.cpp |
diff --git a/src/utils/mac/SkStream_mac.cpp b/src/utils/mac/SkStream_mac.cpp |
index 36e5194a1990b3e65bdbf0fe3654bcff5659b167..a1d63b5fd61306b8045ccff791abbc8ac4cd72e9 100644 |
--- a/src/utils/mac/SkStream_mac.cpp |
+++ b/src/utils/mac/SkStream_mac.cpp |
@@ -48,13 +48,13 @@ static void release_info_proc(void* info) { |
delete (SkStream*)info; |
} |
-CGDataProviderRef SkCreateDataProviderFromStream(SkStream* stream) { |
+CGDataProviderRef SkCreateDataProviderFromStream(std::unique_ptr<SkStream> stream) { |
// TODO: Replace with SkStream::getData() when that is added. Then we only |
// have one version of CGDataProviderCreateWithData (i.e. same release proc) |
const void* addr = stream->getMemoryBase(); |
if (addr) { |
// special-case when the stream is just a block of ram |
- return CGDataProviderCreateWithData(stream, addr, stream->getLength(), |
+ return CGDataProviderCreateWithData(stream.release(), addr, stream->getLength(), |
delete_stream_proc); |
bungeman-skia
2016/09/15 20:13:19
We are turning over ownership of the stream to the
|
} |
@@ -65,17 +65,15 @@ CGDataProviderRef SkCreateDataProviderFromStream(SkStream* stream) { |
rec.skipForward = skip_forward_proc; |
rec.rewind = rewind_proc; |
rec.releaseInfo = release_info_proc; |
- return CGDataProviderCreateSequential(stream, &rec); |
+ return CGDataProviderCreateSequential(stream.release(), &rec); |
} |
/////////////////////////////////////////////////////////////////////////////// |
#include "SkData.h" |
-CGDataProviderRef SkCreateDataProviderFromData(SkData* data) { |
- data->ref(); |
- return CGDataProviderCreateWithData(data, data->data(), data->size(), |
- unref_proc); |
+CGDataProviderRef SkCreateDataProviderFromData(sk_sp<SkData> data) { |
+ return CGDataProviderCreateWithData(data.release(), data->data(), data->size(), unref_proc); |
bungeman-skia
2016/09/15 20:13:19
Same issue here, using 'data' after release().
|
} |
#endif//defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) |