Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Unified Diff: core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp

Issue 1420583003: Revert "Revert "Add type cast definitions for CPDF_Dictionary."" (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_image.cpp ('k') | core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
diff --git a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
index 127fb932502b72d94e8be2550a14da63e1ba460a..ffa5e62a0784a671662e4b7c4c97936b8b8d372f 100644
--- a/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
+++ b/core/src/fpdfapi/fpdf_page/fpdf_page_parser.cpp
@@ -418,11 +418,9 @@ void CPDF_StreamContentParser::Handle_BeginMarkedContent_Dictionary() {
}
bDirect = FALSE;
}
- if (pProperty->GetType() != PDFOBJ_DICTIONARY) {
- return;
+ if (CPDF_Dictionary* pDict = pProperty->AsDictionary()) {
+ m_CurContentMark.GetModify()->AddMark(tag, pDict, bDirect);
}
- m_CurContentMark.GetModify()->AddMark(tag, (CPDF_Dictionary*)pProperty,
- bDirect);
}
void CPDF_StreamContentParser::Handle_BeginMarkedContent() {
if (!m_Options.m_bMarkedContent) {
@@ -487,7 +485,7 @@ static CFX_ByteStringC _PDF_FindFullName(const _FX_BSTR* table,
void _PDF_ReplaceAbbr(CPDF_Object* pObj) {
switch (pObj->GetType()) {
case PDFOBJ_DICTIONARY: {
- CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
+ CPDF_Dictionary* pDict = pObj->AsDictionary();
FX_POSITION pos = pDict->GetStartPos();
while (pos) {
CFX_ByteString key;
@@ -550,7 +548,7 @@ static CFX_ByteStringC _PDF_FindAbbrName(const _FX_BSTR* table,
void _PDF_ReplaceFull(CPDF_Object* pObj) {
switch (pObj->GetType()) {
case PDFOBJ_DICTIONARY: {
- CPDF_Dictionary* pDict = (CPDF_Dictionary*)pObj;
+ CPDF_Dictionary* pDict = pObj->AsDictionary();
FX_POSITION pos = pDict->GetStartPos();
while (pos) {
CFX_ByteString key;
@@ -886,8 +884,8 @@ void CPDF_StreamContentParser::Handle_SetGray_Stroke() {
void CPDF_StreamContentParser::Handle_SetExtendGraphState() {
CFX_ByteString name = GetString(0);
CPDF_Dictionary* pGS =
- (CPDF_Dictionary*)FindResourceObj(FX_BSTRC("ExtGState"), name);
- if (pGS == NULL || pGS->GetType() != PDFOBJ_DICTIONARY) {
+ ToDictionary(FindResourceObj(FX_BSTRC("ExtGState"), name));
+ if (!pGS) {
m_bResourceMissing = TRUE;
return;
}
@@ -1217,11 +1215,12 @@ CPDF_Object* CPDF_StreamContentParser::FindResourceObj(
}
CPDF_Font* CPDF_StreamContentParser::FindFont(const CFX_ByteString& name) {
CPDF_Dictionary* pFontDict =
- (CPDF_Dictionary*)FindResourceObj(FX_BSTRC("Font"), name);
- if (pFontDict == NULL || pFontDict->GetType() != PDFOBJ_DICTIONARY) {
+ ToDictionary(FindResourceObj(FX_BSTRC("Font"), name));
+ if (!pFontDict) {
m_bResourceMissing = TRUE;
return CPDF_Font::GetStockFont(m_pDocument, FX_BSTRC("Helvetica"));
}
+
CPDF_Font* pFont = m_pDocument->LoadFont(pFontDict);
if (pFont && pFont->GetType3Font()) {
pFont->GetType3Font()->SetPageResources(m_pResources);
@@ -1261,8 +1260,8 @@ CPDF_Pattern* CPDF_StreamContentParser::FindPattern(const CFX_ByteString& name,
FX_BOOL bShading) {
CPDF_Object* pPattern = FindResourceObj(
bShading ? FX_BSTRC("Shading") : FX_BSTRC("Pattern"), name);
- if (pPattern == NULL || (pPattern->GetType() != PDFOBJ_DICTIONARY &&
- pPattern->GetType() != PDFOBJ_STREAM)) {
+ if (pPattern == NULL ||
+ (!pPattern->IsDictionary() && pPattern->GetType() != PDFOBJ_STREAM)) {
m_bResourceMissing = TRUE;
return NULL;
}
« no previous file with comments | « core/src/fpdfapi/fpdf_page/fpdf_page_image.cpp ('k') | core/src/fpdfapi/fpdf_parser/fpdf_parser_decode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698