| Index: core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| index d486cfe231a7efb7759fa5921bd1a0f85b2fe467..27cc8688cc256378f3e90da37234c75da7612d73 100644
|
| --- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| +++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
|
| @@ -2139,6 +2139,13 @@ CPDF_Object* CPDF_SyntaxParser::GetObject(CPDF_IndirectObjects* pObjList,
|
|
|
| ++nKeys;
|
| key = PDF_NameDecode(key);
|
| + if (key.IsEmpty())
|
| + continue;
|
| +
|
| + CFX_ByteStringC keyNoSlash(key.c_str() + 1, key.GetLength() - 1);
|
| + if (keyNoSlash.IsEmpty())
|
| + continue;
|
| +
|
| if (key == FX_BSTRC("/Contents"))
|
| dwSignValuePos = m_Pos;
|
|
|
| @@ -2146,14 +2153,12 @@ CPDF_Object* CPDF_SyntaxParser::GetObject(CPDF_IndirectObjects* pObjList,
|
| if (!pObj)
|
| continue;
|
|
|
| - if (key.GetLength() >= 1) {
|
| - if (nKeys < 32) {
|
| - pDict->SetAt(CFX_ByteStringC(key.c_str() + 1, key.GetLength() - 1),
|
| - pObj);
|
| - } else {
|
| - pDict->AddValue(CFX_ByteStringC(key.c_str() + 1, key.GetLength() - 1),
|
| - pObj);
|
| - }
|
| + // TODO(thestig): Remove this conditional once CPDF_Dictionary has a
|
| + // better underlying map implementation.
|
| + if (nKeys < 32) {
|
| + pDict->SetAt(keyNoSlash, pObj);
|
| + } else {
|
| + pDict->AddValue(keyNoSlash, pObj);
|
| }
|
| }
|
|
|
|
|