[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/SkPDFFormXObject.cpp b/src/pdf/SkPDFFormXObject.cpp
index 8587ea6..186c228 100644
--- a/src/pdf/SkPDFFormXObject.cpp
+++ b/src/pdf/SkPDFFormXObject.cpp
@@ -31,14 +31,8 @@
fStream = new SkPDFStream(stream_data);
fStream->unref(); // SkRefPtr and new both took a reference.
- SkRefPtr<SkPDFName> typeValue = new SkPDFName("XObject");
- typeValue->unref(); // SkRefPtr and new both took a reference.
- insert("Type", typeValue.get());
-
- SkRefPtr<SkPDFName> subTypeValue = new SkPDFName("Form");
- subTypeValue->unref(); // SkRefPtr and new both took a reference.
- insert("Subtype", subTypeValue.get());
-
+ insert("Type", new SkPDFName("XObject"))->unref();
+ insert("Subtype", new SkPDFName("Form"))->unref();
insert("BBox", device->getMediaBox().get());
insert("Resources", device->getResourceDict().get());
@@ -48,11 +42,8 @@
transformArray->reserve(6);
SkScalar transform[6];
SkAssertResult(matrix.pdfTransform(transform));
- for (size_t i = 0; i < SK_ARRAY_COUNT(transform); i++) {
- SkRefPtr<SkPDFScalar> val = new SkPDFScalar(transform[i]);
- val->unref(); // SkRefPtr and new both took a reference.
- transformArray->append(val.get());
- }
+ for (size_t i = 0; i < SK_ARRAY_COUNT(transform); i++)
+ transformArray->append(new SkPDFScalar(transform[i]))->unref();
insert("Matrix", transformArray.get());
}
}
@@ -78,10 +69,10 @@
fDevice->getResources(resourceList);
}
-void SkPDFFormXObject::insert(SkPDFName* key, SkPDFObject* value) {
- fStream->insert(key, value);
+SkPDFObject* SkPDFFormXObject::insert(SkPDFName* key, SkPDFObject* value) {
+ return fStream->insert(key, value);
}
-void SkPDFFormXObject::insert(const char key[], SkPDFObject* value) {
- fStream->insert(key, value);
+SkPDFObject* SkPDFFormXObject::insert(const char key[], SkPDFObject* value) {
+ return fStream->insert(key, value);
}