aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorGravatar edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-03-19 17:19:05 +0000
committerGravatar edisonn@google.com <edisonn@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-03-19 17:19:05 +0000
commit66bedbb02dbd252f46c1fad862d0561a0bb3f94b (patch)
tree79627a69234e8df7883dfbc9243c7120aba2952e /include
parentf315451f78760e6e2066c09da3644ce93e0580e6 (diff)
resubmit https://code.google.com/p/skia/source/detail?r=7883 (in the meantime we added capability to collect minidump and callstack if buildbot fails with heap coruption in windows. a few minor conflicts have been resolved)
Review URL: https://codereview.chromium.org/12840004 git-svn-id: http://skia.googlecode.com/svn/trunk@8233 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include')
-rw-r--r--include/pdf/SkPDFDevice.h12
-rw-r--r--include/pdf/SkPDFDocument.h4
2 files changed, 13 insertions, 3 deletions
diff --git a/include/pdf/SkPDFDevice.h b/include/pdf/SkPDFDevice.h
index 90379f9f6b..f8261b5da1 100644
--- a/include/pdf/SkPDFDevice.h
+++ b/include/pdf/SkPDFDevice.h
@@ -30,6 +30,7 @@ class SkPDFGraphicState;
class SkPDFObject;
class SkPDFShader;
class SkPDFStream;
+template <typename T> class SK_API SkTSet;
// Private classes.
struct ContentEntry;
@@ -132,12 +133,19 @@ public:
SK_API SkPDFDict* getResourceDict();
/** Get the list of resources (PDF objects) used on this page.
- * @param resourceList A list to append the resources to.
+ * This method will add to newResourceObjects any objects that this method
+ * depends on, but not already in knownResourceObjects. This might operate
+ * recursively so if this object depends on another object and that object
+ * depends on two more, all three objects will be added.
+ *
+ * @param knownResourceObjects The set of resources to be ignored.
+ * @param newResourceObjects The set to append dependant resources to.
* @param recursive If recursive is true, get the resources of the
* device's resources recursively. (Useful for adding
* objects to the catalog.)
*/
- SK_API void getResources(SkTDArray<SkPDFObject*>* resourceList,
+ SK_API void getResources(const SkTSet<SkPDFObject*>& knownResourceObjects,
+ SkTSet<SkPDFObject*>* newResourceObjects,
bool recursive) const;
/** Get the fonts used on this device.
diff --git a/include/pdf/SkPDFDocument.h b/include/pdf/SkPDFDocument.h
index cb786c7133..8f4ee48564 100644
--- a/include/pdf/SkPDFDocument.h
+++ b/include/pdf/SkPDFDocument.h
@@ -21,6 +21,7 @@ class SkPDFDict;
class SkPDFPage;
class SkPDFObject;
class SkWStream;
+template <typename T> class SK_API SkTSet;
/** \class SkPDFDocument
@@ -79,7 +80,8 @@ private:
SkTDArray<SkPDFPage*> fPages;
SkTDArray<SkPDFDict*> fPageTree;
SkPDFDict* fDocCatalog;
- SkTDArray<SkPDFObject*> fPageResources;
+ SkTSet<SkPDFObject*>* fFirstPageResources;
+ SkTSet<SkPDFObject*>* fOtherPageResources;
SkTDArray<SkPDFObject*> fSubstitutes;
int fSecondPageFirstResourceIndex;