diff options
author | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2010-10-12 23:08:13 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2010-10-12 23:08:13 +0000 |
commit | d877fdbb6e64692285c3e6532d88b9458f65b3cd (patch) | |
tree | c346892a4d2d014c95acc6729174c779d0bfcd02 /src/pdf/SkPDFTypes.cpp | |
parent | f66025d59ab4c8c4439fabf6ad89ddf35a19d1fd (diff) |
High level pdf classes and pdf specific interface.
The guts of the implementation will be in SkPDFDevice and below. This is a first implementation of everything above that point.
Review URL: http://codereview.appspot.com/2342043
git-svn-id: http://skia.googlecode.com/svn/trunk@602 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/pdf/SkPDFTypes.cpp')
-rw-r--r-- | src/pdf/SkPDFTypes.cpp | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp index f5f23ca709..a01fcbaf5d 100644 --- a/src/pdf/SkPDFTypes.cpp +++ b/src/pdf/SkPDFTypes.cpp @@ -211,11 +211,15 @@ void SkPDFArray::append(SkPDFObject* 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()); +} + SkPDFDict::~SkPDFDict() { - for (int i = 0; i < fValue.count(); i++) { - SkSafeUnref(fValue[i].key); - SkSafeUnref(fValue[i].value); - } + clear(); } void SkPDFDict::emitObject(SkWStream* stream, SkPDFCatalog* catalog, @@ -252,3 +256,17 @@ void SkPDFDict::insert(SkPDFName* key, SkPDFObject* value) { newEntry->value = value; SkSafeRef(newEntry->value); } + +void 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); +} + +void SkPDFDict::clear() { + for (int i = 0; i < fValue.count(); i++) { + fValue[i].key->safeUnref(); + fValue[i].value->safeUnref(); + } + fValue.reset(); +} |