Chromium Code Reviews| 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) |