diff options
author | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-02-01 22:19:44 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-02-01 22:19:44 +0000 |
commit | f7c157610ff85f7323f5e213b62478dcc66edbec (patch) | |
tree | f49c4a700685466c0ad80b2f0f5c0b04b205f1b9 /src/pdf/SkPDFTypes.cpp | |
parent | 6f7fbc9fbb584b9b9fa6ed3a677d71ecd49aafce (diff) |
[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
Diffstat (limited to 'src/pdf/SkPDFTypes.cpp')
-rw-r--r-- | src/pdf/SkPDFTypes.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp index 506b86d37f..cc1735e98a 100644 --- a/src/pdf/SkPDFTypes.cpp +++ b/src/pdf/SkPDFTypes.cpp @@ -254,25 +254,25 @@ void SkPDFArray::reserve(int length) { fValue.setReserve(length); } -void SkPDFArray::setAt(int offset, SkPDFObject* value) { +SkPDFObject* SkPDFArray::setAt(int offset, SkPDFObject* value) { SkASSERT(offset < fValue.count()); SkSafeUnref(fValue[offset]); fValue[offset] = value; SkSafeRef(fValue[offset]); + return value; } -void SkPDFArray::append(SkPDFObject* value) { +SkPDFObject* SkPDFArray::append(SkPDFObject* value) { SkASSERT(fValue.count() < kMaxLen); SkSafeRef(value); fValue.push(value); + return value; } SkPDFDict::SkPDFDict() {} SkPDFDict::SkPDFDict(const char type[]) { - SkRefPtr<SkPDFName> typeName = new SkPDFName(type); - typeName->unref(); // SkRefPtr and new both took a reference. - insert("Type", typeName.get()); + insert("Type", new SkPDFName(type))->unref(); } SkPDFDict::~SkPDFDict() { @@ -306,18 +306,19 @@ size_t SkPDFDict::getOutputSize(SkPDFCatalog* catalog, bool indirect) { return result; } -void SkPDFDict::insert(SkPDFName* key, SkPDFObject* value) { +SkPDFObject* SkPDFDict::insert(SkPDFName* key, SkPDFObject* value) { struct Rec* newEntry = fValue.append(); newEntry->key = key; SkSafeRef(newEntry->key); newEntry->value = value; SkSafeRef(newEntry->value); + return value; } -void SkPDFDict::insert(const char key[], SkPDFObject* value) { +SkPDFObject* SkPDFDict::insert(const char key[], SkPDFObject* value) { SkRefPtr<SkPDFName> keyName = new SkPDFName(key); keyName->unref(); // SkRefPtr and new both took a reference. - insert(keyName.get(), value); + return insert(keyName.get(), value); } void SkPDFDict::clear() { |