Chromium Code Reviews| Index: src/pdf/SkPDFTypes.cpp |
| diff --git a/src/pdf/SkPDFTypes.cpp b/src/pdf/SkPDFTypes.cpp |
| index ed02d2bd12daf658bcd5c5bc7daaefa69dfbb79b..b10ab3d3db11078128cfd8dc9a58586da5ae334b 100644 |
| --- a/src/pdf/SkPDFTypes.cpp |
| +++ b/src/pdf/SkPDFTypes.cpp |
| @@ -499,3 +499,49 @@ SkPDFName* SkPDFDict::Iter::next(SkPDFObject** value) { |
| *value = NULL; |
| return NULL; |
| } |
| + |
| +/////////////////////////////////////////////////////////////////////////////// |
| +SkPDFObject* SkPDFResourceDict::insertResource( |
| + SkPDFName* type, SkPDFName* key, SkPDFObject* value) { |
| + SkPDFDict* typeDict = getResourceTypeDict(type); |
| + typeDict->insert(key, value); |
| + return value; |
| +} |
| + |
| +SkPDFObject* SkPDFResourceDict::insertResource( |
| + const char type[], const char key[], SkPDFObject* value) { |
| + return insertResource(new SkPDFName(type), new SkPDFName(key), value); |
|
vandebo (ex-Chrome)
2013/07/09 17:47:44
SkNew should be used for new uses of "new"
ducky
2013/07/10 21:42:26
Ok. I've changed it for this file. Does this apply
vandebo (ex-Chrome)
2013/07/11 22:22:23
All new uses
|
| +} |
| + |
| +SkPDFObject* SkPDFResourceDict::insertResourceAsRef( |
| + const char type[], const char key[], SkPDFObject* value) { |
| + SkAutoTUnref<SkPDFObjRef> ref( new SkPDFObjRef(value)); |
| + insertResource(new SkPDFName(type), new SkPDFName(key), ref); |
| + fResources.add(value); |
| + |
| + return value; |
| +} |
| + |
| +void SkPDFResourceDict::getResources( |
| + const SkTSet<SkPDFObject*>& knownResourceObjects, |
| + SkTSet<SkPDFObject*>* newResourceObjects) { |
| + GetResourcesHelper(&fResources.toArray(), |
| + knownResourceObjects, |
| + newResourceObjects); |
| +} |
| + |
| +SkPDFDict* SkPDFResourceDict::getResourceTypeDict(SkPDFName* type) { |
| + for (int i = 0; i < fTypes.count(); i++) { |
| + if (*(fTypes[i].key) == *type) { |
| + return fTypes[i].value; |
| + } |
| + } |
| + |
| + // If not found, create a new record. |
| + struct DictRec* newEntry = fTypes.append(); |
| + newEntry->key = type; |
| + SkAutoTUnref<SkPDFDict> newDict(new SkPDFDict()); |
| + newEntry->value = newDict; |
| + insert(type, newDict); // ref counting handled in SkPDFDict::insert |
| + return newDict.get(); |
| +} |