[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/SkPDFPage.cpp b/src/pdf/SkPDFPage.cpp
index e96f0a1..98d7682 100644
--- a/src/pdf/SkPDFPage.cpp
+++ b/src/pdf/SkPDFPage.cpp
@@ -38,10 +38,7 @@
contentStream->unref(); // SkRefPtr and new both took a reference.
fContentStream = new SkPDFStream(contentStream.get());
fContentStream->unref(); // SkRefPtr and new both took a reference.
- SkRefPtr<SkPDFObjRef> contentRef =
- new SkPDFObjRef(fContentStream.get());
- contentRef->unref(); // SkRefPtr and new both took a reference.
- insert("Contents", contentRef.get());
+ insert("Contents", new SkPDFObjRef(fContentStream.get()))->unref();
}
catalog->addObject(fContentStream.get(), firstPage);
fDevice->getResources(resourceObjects);
@@ -102,9 +99,7 @@
int count = 0;
for (; i < curNodes.count() && count < kNodeSize; i++, count++) {
curNodes[i]->insert(parentName.get(), newNodeRef.get());
- SkRefPtr<SkPDFObjRef> nodeRef = new SkPDFObjRef(curNodes[i]);
- nodeRef->unref(); // SkRefPtr and new both took a reference.
- kids->append(nodeRef.get());
+ kids->append(new SkPDFObjRef(curNodes[i]))->unref();
// TODO(vandebo) put the objects in strict access order.
// Probably doesn't matter because they are so small.
@@ -117,9 +112,7 @@
}
newNode->insert(kidsName.get(), kids.get());
- SkRefPtr<SkPDFInt> countVal = new SkPDFInt(count);
- countVal->unref(); // SkRefPtr and new both took a reference.
- newNode->insert(countName.get(), countVal.get());
+ newNode->insert(countName.get(), new SkPDFInt(count))->unref();
nextRoundNodes.push(newNode); // Transfer reference.
}