diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-20 14:42:51 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-20 14:42:51 +0000 |
commit | acef3c408216f7ef41bad1532f7946dc067f2bae (patch) | |
tree | e3767b3737a449991e48972285265019d7af025a /src/pdf/SkPDFCatalog.cpp | |
parent | 09fd4d216963c498c24ba355accce9337a5029a8 (diff) |
Reverting r8233 (Use SkSet in PDF)
git-svn-id: http://skia.googlecode.com/svn/trunk@8255 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/pdf/SkPDFCatalog.cpp')
-rw-r--r-- | src/pdf/SkPDFCatalog.cpp | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/pdf/SkPDFCatalog.cpp b/src/pdf/SkPDFCatalog.cpp index 8690b3eaea..49c0404974 100644 --- a/src/pdf/SkPDFCatalog.cpp +++ b/src/pdf/SkPDFCatalog.cpp @@ -171,16 +171,12 @@ void SkPDFCatalog::setSubstitute(SkPDFObject* original, 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); + SkTDArray<SkPDFObject*>* targetList = getSubstituteList(onFirstPage); + int existingSize = targetList->count(); + newMapping.fSubstitute->getResources(targetList); + for (int i = existingSize; i < targetList->count(); ++i) { + addObject((*targetList)[i], onFirstPage); + } } SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { @@ -194,22 +190,22 @@ SkPDFObject* SkPDFCatalog::getSubstituteObject(SkPDFObject* object) { off_t SkPDFCatalog::setSubstituteResourcesOffsets(off_t fileOffset, bool firstPage) { - SkTSet<SkPDFObject*>* targetSet = getSubstituteList(firstPage); + SkTDArray<SkPDFObject*>* targetList = getSubstituteList(firstPage); off_t offsetSum = fileOffset; - for (int i = 0; i < targetSet->count(); ++i) { - offsetSum += setFileOffset((*targetSet)[i], offsetSum); + for (int i = 0; i < targetList->count(); ++i) { + offsetSum += setFileOffset((*targetList)[i], offsetSum); } return offsetSum - fileOffset; } void SkPDFCatalog::emitSubstituteResources(SkWStream *stream, bool firstPage) { - SkTSet<SkPDFObject*>* targetSet = getSubstituteList(firstPage); - for (int i = 0; i < targetSet->count(); ++i) { - (*targetSet)[i]->emit(stream, this, true); + SkTDArray<SkPDFObject*>* targetList = getSubstituteList(firstPage); + for (int i = 0; i < targetList->count(); ++i) { + (*targetList)[i]->emit(stream, this, true); } } -SkTSet<SkPDFObject*>* SkPDFCatalog::getSubstituteList(bool firstPage) { +SkTDArray<SkPDFObject*>* SkPDFCatalog::getSubstituteList(bool firstPage) { return firstPage ? &fSubstituteResourcesFirstPage : &fSubstituteResourcesRemaining; } |