summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page/cpdf_docpagedata.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fpdfapi/page/cpdf_docpagedata.h')
-rw-r--r--core/fpdfapi/page/cpdf_docpagedata.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_docpagedata.h b/core/fpdfapi/page/cpdf_docpagedata.h
index 02107aa2bb..5508f568be 100644
--- a/core/fpdfapi/page/cpdf_docpagedata.h
+++ b/core/fpdfapi/page/cpdf_docpagedata.h
@@ -39,8 +39,13 @@ class CPDF_DocPageData {
CPDF_FontEncoding* pEncoding);
void ReleaseFont(const CPDF_Dictionary* pFontDict);
+ // Loads a colorspace.
CPDF_ColorSpace* GetColorSpace(CPDF_Object* pCSObj,
const CPDF_Dictionary* pResources);
+
+ // Loads a colorspace in a context that might be while loading another
+ // colorspace. |pVisited| is passed recursively to avoid circular calls
+ // involving CPDF_ColorSpace::Load().
CPDF_ColorSpace* GetColorSpaceGuarded(CPDF_Object* pCSObj,
const CPDF_Dictionary* pResources,
std::set<CPDF_Object*>* pVisited);
@@ -68,6 +73,17 @@ class CPDF_DocPageData {
private:
using CPDF_CountedFont = CPDF_CountedObject<CPDF_Font>;
+ // Loads a colorspace in a context that might be while loading another
+ // colorspace, or even in a recursive call from this method itself. |pVisited|
+ // is passed recursively to avoid circular calls involving
+ // CPDF_ColorSpace::Load() and |pVisitedInternal| is also passed recursively
+ // to avoid circular calls with this method calling itself.
+ CPDF_ColorSpace* GetColorSpaceInternal(
+ CPDF_Object* pCSObj,
+ const CPDF_Dictionary* pResources,
+ std::set<CPDF_Object*>* pVisited,
+ std::set<CPDF_Object*>* pVisitedInternal);
+
bool m_bForceClear;
UnownedPtr<CPDF_Document> const m_pPDFDoc;
std::map<ByteString, CPDF_Stream*> m_HashProfileMap;