OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "parser_int.h" | 7 #include "parser_int.h" |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <utility> | 10 #include <utility> |
(...skipping 2107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2118 break; | 2118 break; |
2119 } | 2119 } |
2120 if (key[0] != '/') | 2120 if (key[0] != '/') |
2121 continue; | 2121 continue; |
2122 | 2122 |
2123 ++nKeys; | 2123 ++nKeys; |
2124 key = PDF_NameDecode(key); | 2124 key = PDF_NameDecode(key); |
2125 if (key.IsEmpty()) | 2125 if (key.IsEmpty()) |
2126 continue; | 2126 continue; |
2127 | 2127 |
2128 CFX_ByteStringC keyNoSlash(key.c_str() + 1, key.GetLength() - 1); | |
2129 if (keyNoSlash.IsEmpty()) | |
2130 continue; | |
2131 | |
2132 if (key == FX_BSTRC("/Contents")) | 2128 if (key == FX_BSTRC("/Contents")) |
2133 dwSignValuePos = m_Pos; | 2129 dwSignValuePos = m_Pos; |
2134 | 2130 |
2135 CPDF_Object* pObj = GetObject(pObjList, objnum, gennum); | 2131 CPDF_Object* pObj = GetObject(pObjList, objnum, gennum); |
2136 if (!pObj) | 2132 if (!pObj) |
2137 continue; | 2133 continue; |
2138 | 2134 |
| 2135 CFX_ByteStringC keyNoSlash(key.c_str() + 1, key.GetLength() - 1); |
2139 // TODO(thestig): Remove this conditional once CPDF_Dictionary has a | 2136 // TODO(thestig): Remove this conditional once CPDF_Dictionary has a |
2140 // better underlying map implementation. | 2137 // better underlying map implementation. |
2141 if (nKeys < 32) { | 2138 if (nKeys < 32) { |
2142 pDict->SetAt(keyNoSlash, pObj); | 2139 pDict->SetAt(keyNoSlash, pObj); |
2143 } else { | 2140 } else { |
2144 pDict->AddValue(keyNoSlash, pObj); | 2141 pDict->AddValue(keyNoSlash, pObj); |
2145 } | 2142 } |
2146 } | 2143 } |
2147 | 2144 |
2148 if (IsSignatureDict(pDict.get())) { | 2145 if (IsSignatureDict(pDict.get())) { |
(...skipping 2801 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4950 if (!m_pLinearizedDict) | 4947 if (!m_pLinearizedDict) |
4951 return -1; | 4948 return -1; |
4952 CPDF_Array* pRange = m_pLinearizedDict->GetArray(FX_BSTRC("H")); | 4949 CPDF_Array* pRange = m_pLinearizedDict->GetArray(FX_BSTRC("H")); |
4953 if (!pRange) | 4950 if (!pRange) |
4954 return -1; | 4951 return -1; |
4955 CPDF_Object* pStreamLen = pRange->GetElementValue(1); | 4952 CPDF_Object* pStreamLen = pRange->GetElementValue(1); |
4956 if (!pStreamLen) | 4953 if (!pStreamLen) |
4957 return -1; | 4954 return -1; |
4958 return pStreamLen->GetInteger(); | 4955 return pStreamLen->GetInteger(); |
4959 } | 4956 } |
OLD | NEW |