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

Side by Side Diff: fpdfsdk/src/javascript/Document.cpp

Issue 1541703003: Use std::map as CPDF_Dictionary's underlying store. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: address comments, rebase, fix embedder test Created 4 years, 11 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 unified diff | Download patch
« no previous file with comments | « fpdfsdk/src/fpdfview.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "Document.h" 7 #include "Document.h"
8 8
9 #include "Field.h" 9 #include "Field.h"
10 #include "Icon.h" 10 #include "Icon.h"
(...skipping 772 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str()); 783 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str());
784 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str()); 784 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str());
785 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str()); 785 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str());
786 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str()); 786 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str());
787 FXJS_PutObjectString(isolate, pObj, L"CreationDate", 787 FXJS_PutObjectString(isolate, pObj, L"CreationDate",
788 cwCreationDate.c_str()); 788 cwCreationDate.c_str());
789 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str()); 789 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str());
790 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str()); 790 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str());
791 791
792 // It's to be compatible to non-standard info dictionary. 792 // It's to be compatible to non-standard info dictionary.
793 FX_POSITION pos = pDictionary->GetStartPos(); 793 for (const auto& it : *pDictionary) {
794 while (pos) { 794 const CFX_ByteString& bsKey = it.first;
795 CFX_ByteString bsKey; 795 CPDF_Object* pValueObj = it.second;
796 CPDF_Object* pValueObj = pDictionary->GetNextElement(pos, bsKey);
797 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey, bsKey.GetLength()); 796 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey, bsKey.GetLength());
798 797
799 if (pValueObj->IsString() || pValueObj->IsName()) { 798 if (pValueObj->IsString() || pValueObj->IsName()) {
800 FXJS_PutObjectString(isolate, pObj, wsKey.c_str(), 799 FXJS_PutObjectString(isolate, pObj, wsKey.c_str(),
801 pValueObj->GetUnicodeText().c_str()); 800 pValueObj->GetUnicodeText().c_str());
802 } else if (pValueObj->IsNumber()) { 801 } else if (pValueObj->IsNumber()) {
803 FXJS_PutObjectNumber(isolate, pObj, wsKey.c_str(), 802 FXJS_PutObjectNumber(isolate, pObj, wsKey.c_str(),
804 (float)pValueObj->GetNumber()); 803 (float)pValueObj->GetNumber());
805 } else if (pValueObj->IsBoolean()) { 804 } else if (pValueObj->IsBoolean()) {
806 FXJS_PutObjectBoolean(isolate, pObj, wsKey.c_str(), 805 FXJS_PutObjectBoolean(isolate, pObj, wsKey.c_str(),
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 CJS_DelayData* pData = DelayDataForFieldAndControlIndex.GetAt(i); 1642 CJS_DelayData* pData = DelayDataForFieldAndControlIndex.GetAt(i);
1644 Field::DoDelay(m_pDocument, pData); 1643 Field::DoDelay(m_pDocument, pData);
1645 DelayDataForFieldAndControlIndex.SetAt(i, NULL); 1644 DelayDataForFieldAndControlIndex.SetAt(i, NULL);
1646 delete pData; 1645 delete pData;
1647 } 1646 }
1648 } 1647 }
1649 1648
1650 CJS_Document* Document::GetCJSDoc() const { 1649 CJS_Document* Document::GetCJSDoc() const {
1651 return static_cast<CJS_Document*>(m_pJSObject); 1650 return static_cast<CJS_Document*>(m_pJSObject);
1652 } 1651 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/fpdfview.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698