Chromium Code Reviews| 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 "public/fpdf_doc.h" | 7 #include "public/fpdf_doc.h" |
| 8 | 8 |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| 11 #include "core/include/fpdfapi/cpdf_array.h" | |
| 11 #include "core/include/fpdfapi/cpdf_document.h" | 12 #include "core/include/fpdfapi/cpdf_document.h" |
| 12 #include "fpdfsdk/include/fsdk_define.h" | 13 #include "fpdfsdk/include/fsdk_define.h" |
| 13 #include "third_party/base/stl_util.h" | 14 #include "third_party/base/stl_util.h" |
| 14 | 15 |
| 15 namespace { | 16 namespace { |
| 16 | 17 |
| 17 int THISMODULE = 0; | 18 int THISMODULE = 0; |
|
dsinclair
2016/03/10 21:23:45
Ah, this is wacky, can it be removed?
Tom Sepez
2016/03/10 22:05:19
Not yet. The so-called SetPrivateData allows one
| |
| 18 | 19 |
| 19 CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree, | 20 CPDF_Bookmark FindBookmark(const CPDF_BookmarkTree& tree, |
| 20 CPDF_Bookmark bookmark, | 21 CPDF_Bookmark bookmark, |
| 21 const CFX_WideString& title, | 22 const CFX_WideString& title, |
| 22 std::set<CPDF_Dictionary*>* visited) { | 23 std::set<CPDF_Dictionary*>* visited) { |
| 23 // Return if already checked to avoid circular calling. | 24 // Return if already checked to avoid circular calling. |
| 24 if (pdfium::ContainsKey(*visited, bookmark.GetDict())) | 25 if (pdfium::ContainsKey(*visited, bookmark.GetDict())) |
| 25 return CPDF_Bookmark(); | 26 return CPDF_Bookmark(); |
| 26 visited->insert(bookmark.GetDict()); | 27 visited->insert(bookmark.GetDict()); |
| 27 | 28 |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 359 return 0; | 360 return 0; |
| 360 CFX_WideString text = pInfo->GetUnicodeTextBy(tag); | 361 CFX_WideString text = pInfo->GetUnicodeTextBy(tag); |
| 361 // Use UTF-16LE encoding | 362 // Use UTF-16LE encoding |
| 362 CFX_ByteString encodedText = text.UTF16LE_Encode(); | 363 CFX_ByteString encodedText = text.UTF16LE_Encode(); |
| 363 unsigned long len = encodedText.GetLength(); | 364 unsigned long len = encodedText.GetLength(); |
| 364 if (buffer && buflen >= len) { | 365 if (buffer && buflen >= len) { |
| 365 FXSYS_memcpy(buffer, encodedText.c_str(), len); | 366 FXSYS_memcpy(buffer, encodedText.c_str(), len); |
| 366 } | 367 } |
| 367 return len; | 368 return len; |
| 368 } | 369 } |
| OLD | NEW |