[PDF] Clean up ref counting.
Return ref'd objs where possible enabling removal of many SkRefPtr<> variables.
Review URL: http://codereview.appspot.com/4029051
git-svn-id: http://skia.googlecode.com/svn/trunk@750 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/pdf/SkPDFStream.cpp b/src/pdf/SkPDFStream.cpp
index cbba068..9e9859b 100644
--- a/src/pdf/SkPDFStream.cpp
+++ b/src/pdf/SkPDFStream.cpp
@@ -26,19 +26,13 @@
if (SkFlate::HaveFlate() &&
fCompressedData.getOffset() < stream->getLength()) {
fLength = fCompressedData.getOffset();
-
- SkRefPtr<SkPDFName> flateFilter = new SkPDFName("FlateDecode");
- flateFilter->unref(); // SkRefPtr and new both took a reference.
- fDict.insert("Filter", flateFilter.get());
+ fDict.insert("Filter", new SkPDFName("FlateDecode"))->unref();
} else {
fCompressedData.reset();
fPlainData = stream;
fLength = fPlainData->getLength();
}
-
- SkRefPtr<SkPDFInt> lenValue = new SkPDFInt(fLength);
- lenValue->unref(); // SkRefPtr and new both took a reference.
- fDict.insert("Length", lenValue.get());
+ fDict.insert("Length", new SkPDFInt(fLength))->unref();
}
SkPDFStream::~SkPDFStream() {
@@ -66,10 +60,10 @@
strlen(" stream\n\nendstream") + fLength;
}
-void SkPDFStream::insert(SkPDFName* key, SkPDFObject* value) {
- fDict.insert(key, value);
+SkPDFObject* SkPDFStream::insert(SkPDFName* key, SkPDFObject* value) {
+ return fDict.insert(key, value);
}
-void SkPDFStream::insert(const char key[], SkPDFObject* value) {
- fDict.insert(key, value);
+SkPDFObject* SkPDFStream::insert(const char key[], SkPDFObject* value) {
+ return fDict.insert(key, value);
}