Remove SkRefPtr
Review URL: https://codereview.appspot.com/7030059
git-svn-id: http://skia.googlecode.com/svn/trunk@7021 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pdf/SkPDFStream.cpp b/src/pdf/SkPDFStream.cpp
index d113a0b..38e874e 100644
--- a/src/pdf/SkPDFStream.cpp
+++ b/src/pdf/SkPDFStream.cpp
@@ -21,19 +21,20 @@
SkPDFStream::SkPDFStream(SkStream* stream)
: fState(kUnused_State),
fData(stream) {
+ SkSafeRef(stream);
}
SkPDFStream::SkPDFStream(SkData* data) : fState(kUnused_State) {
SkMemoryStream* stream = new SkMemoryStream;
stream->setData(data);
- fData = stream;
- fData->unref(); // SkRefPtr and new both took a reference.
+ fData.reset(stream); // Transfer ownership.
}
SkPDFStream::SkPDFStream(const SkPDFStream& pdfStream)
: SkPDFDict(),
fState(kUnused_State),
- fData(pdfStream.fData) {
+ fData(pdfStream.fData.get()) {
+ fData.get()->ref();
bool removeLength = true;
// Don't uncompress an already compressed stream, but we could.
if (pdfStream.fState == kCompressed_State) {
@@ -84,7 +85,8 @@
SkPDFStream::SkPDFStream() : fState(kUnused_State) {}
void SkPDFStream::setData(SkStream* stream) {
- fData = stream;
+ fData.reset(stream);
+ SkSafeRef(stream);
}
bool SkPDFStream::populate(SkPDFCatalog* catalog) {
@@ -96,8 +98,7 @@
if (compressedData.getOffset() < fData->getLength()) {
SkMemoryStream* stream = new SkMemoryStream;
stream->setData(compressedData.copyToData())->unref();
- fData = stream;
- fData->unref(); // SkRefPtr and new both took a reference.
+ fData.reset(stream); // Transfer ownership.
insertName("Filter", "FlateDecode");
}
fState = kCompressed_State;
@@ -108,8 +109,7 @@
} else if (fState == kNoCompression_State && !skip_compression(catalog) &&
SkFlate::HaveFlate()) {
if (!fSubstitute.get()) {
- fSubstitute = new SkPDFStream(*this);
- fSubstitute->unref(); // SkRefPtr and new both took a reference.
+ fSubstitute.reset(new SkPDFStream(*this));
catalog->setSubstitute(this, fSubstitute.get());
}
return false;