Chromium Code Reviews| Index: src/pdf/SkPDFCatalog.cpp |
| diff --git a/src/pdf/SkPDFCatalog.cpp b/src/pdf/SkPDFCatalog.cpp |
| index 5fd0f7619c94de36402b9392978232db86727bca..2b51a4f10c4ea5c83c0a75da94dcfcabd0ce7958 100644 |
| --- a/src/pdf/SkPDFCatalog.cpp |
| +++ b/src/pdf/SkPDFCatalog.cpp |
| @@ -56,7 +56,7 @@ size_t SkPDFCatalog::getObjectNumberSize(SkPDFObject* obj) { |
| return buffer.getOffset(); |
| } |
| -int SkPDFCatalog::findObjectIndex(SkPDFObject* obj) const { |
| +int SkPDFCatalog::findObjectIndex(SkPDFObject* obj) { |
|
mtklein
2015/01/26 23:38:59
Seems like this wants a new name, lookupOrAdd?
hal.canary
2015/02/09 23:35:01
I'm going to heavily refactor this class in a late
|
| for (int i = 0; i < fCatalog.count(); i++) { |
| if (fCatalog[i].fObject == obj) { |
| return i; |
| @@ -68,7 +68,9 @@ int SkPDFCatalog::findObjectIndex(SkPDFObject* obj) const { |
| return findObjectIndex(fSubstituteMap[i].fOriginal); |
| } |
| } |
| - return -1; |
| + struct Rec newEntry(obj, false); |
| + fCatalog.append(1, &newEntry); |
| + return fCatalog.count() - 1; |
| } |
| int SkPDFCatalog::assignObjNum(SkPDFObject* obj) { |
| @@ -150,35 +152,8 @@ void SkPDFCatalog::setSubstitute(SkPDFObject* original, |
| } |
| } |
| #endif |
| - // Check if the original is on first page. |
| - bool onFirstPage = false; |
| - for (int i = 0; i < fCatalog.count(); ++i) { |
| - if (fCatalog[i].fObject == original) { |
| - onFirstPage = fCatalog[i].fOnFirstPage; |
| - break; |
| - } |
| -#if defined(SK_DEBUG) |
| - if (i == fCatalog.count() - 1) { |
| - SkASSERT(false); // original not in catalog |
| - return; |
| - } |
| -#endif |
| - } |
| - |
| SubstituteMapping newMapping(original, substitute); |
| fSubstituteMap.append(1, &newMapping); |
| - |
| - // Add resource objects of substitute object to catalog. |
| - SkTSet<SkPDFObject*>* targetSet = getSubstituteList(onFirstPage); |
| - SkTSet<SkPDFObject*> newResourceObjects; |
| - newMapping.fSubstitute->getResources(*targetSet, &newResourceObjects); |
| - for (int i = 0; i < newResourceObjects.count(); ++i) { |
| - addObject(newResourceObjects[i], onFirstPage); |
| - } |
| - // mergeInto returns the number of duplicates. |
| - // If there are duplicates, there is a bug and we mess ref counting. |
| - SkDEBUGCODE(int duplicates =) targetSet->mergeInto(newResourceObjects); |
| - SkASSERT(duplicates == 0); |
| } |
| SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { |
| @@ -190,7 +165,3 @@ SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { |
| return object; |
| } |
| -SkTSet<SkPDFObject*>* SkPDFCatalog::getSubstituteList(bool firstPage) { |
| - return firstPage ? &fSubstituteResourcesFirstPage : |
| - &fSubstituteResourcesRemaining; |
| -} |