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

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

Issue 1883273003: Pass WideStrings without narrowing to c_str in javascript/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Missed one caller. Created 4 years, 8 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 | « no previous file | fpdfsdk/javascript/JS_Value.h » ('j') | 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 "fpdfsdk/javascript/Document.h" 7 #include "fpdfsdk/javascript/Document.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after
762 CFX_WideString cwCreationDate = pDictionary->GetUnicodeTextBy("CreationDate"); 762 CFX_WideString cwCreationDate = pDictionary->GetUnicodeTextBy("CreationDate");
763 CFX_WideString cwModDate = pDictionary->GetUnicodeTextBy("ModDate"); 763 CFX_WideString cwModDate = pDictionary->GetUnicodeTextBy("ModDate");
764 CFX_WideString cwTrapped = pDictionary->GetUnicodeTextBy("Trapped"); 764 CFX_WideString cwTrapped = pDictionary->GetUnicodeTextBy("Trapped");
765 765
766 v8::Isolate* isolate = GetIsolate(cc); 766 v8::Isolate* isolate = GetIsolate(cc);
767 if (vp.IsGetting()) { 767 if (vp.IsGetting()) {
768 CJS_Context* pContext = (CJS_Context*)cc; 768 CJS_Context* pContext = (CJS_Context*)cc;
769 CJS_Runtime* pRuntime = pContext->GetJSRuntime(); 769 CJS_Runtime* pRuntime = pContext->GetJSRuntime();
770 v8::Local<v8::Object> pObj = 770 v8::Local<v8::Object> pObj =
771 FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), pRuntime, -1); 771 FXJS_NewFxDynamicObj(pRuntime->GetIsolate(), pRuntime, -1);
772 FXJS_PutObjectString(isolate, pObj, L"Author", cwAuthor.c_str()); 772 FXJS_PutObjectString(isolate, pObj, L"Author", cwAuthor);
773 FXJS_PutObjectString(isolate, pObj, L"Title", cwTitle.c_str()); 773 FXJS_PutObjectString(isolate, pObj, L"Title", cwTitle);
774 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject.c_str()); 774 FXJS_PutObjectString(isolate, pObj, L"Subject", cwSubject);
775 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords.c_str()); 775 FXJS_PutObjectString(isolate, pObj, L"Keywords", cwKeywords);
776 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator.c_str()); 776 FXJS_PutObjectString(isolate, pObj, L"Creator", cwCreator);
777 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer.c_str()); 777 FXJS_PutObjectString(isolate, pObj, L"Producer", cwProducer);
778 FXJS_PutObjectString(isolate, pObj, L"CreationDate", 778 FXJS_PutObjectString(isolate, pObj, L"CreationDate", cwCreationDate);
779 cwCreationDate.c_str()); 779 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate);
780 FXJS_PutObjectString(isolate, pObj, L"ModDate", cwModDate.c_str()); 780 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped);
781 FXJS_PutObjectString(isolate, pObj, L"Trapped", cwTrapped.c_str());
782 781
783 // It's to be compatible to non-standard info dictionary. 782 // It's to be compatible to non-standard info dictionary.
784 for (const auto& it : *pDictionary) { 783 for (const auto& it : *pDictionary) {
785 const CFX_ByteString& bsKey = it.first; 784 const CFX_ByteString& bsKey = it.first;
786 CPDF_Object* pValueObj = it.second; 785 CPDF_Object* pValueObj = it.second;
787 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey.AsStringC()); 786 CFX_WideString wsKey = CFX_WideString::FromUTF8(bsKey.AsStringC());
788 if (pValueObj->IsString() || pValueObj->IsName()) { 787 if (pValueObj->IsString() || pValueObj->IsName()) {
789 FXJS_PutObjectString(isolate, pObj, wsKey.c_str(), 788 FXJS_PutObjectString(isolate, pObj, wsKey, pValueObj->GetUnicodeText());
790 pValueObj->GetUnicodeText().c_str());
791 } else if (pValueObj->IsNumber()) { 789 } else if (pValueObj->IsNumber()) {
792 FXJS_PutObjectNumber(isolate, pObj, wsKey.c_str(), 790 FXJS_PutObjectNumber(isolate, pObj, wsKey,
793 (float)pValueObj->GetNumber()); 791 (float)pValueObj->GetNumber());
794 } else if (pValueObj->IsBoolean()) { 792 } else if (pValueObj->IsBoolean()) {
795 FXJS_PutObjectBoolean(isolate, pObj, wsKey.c_str(), 793 FXJS_PutObjectBoolean(isolate, pObj, wsKey, !!pValueObj->GetInteger());
796 !!pValueObj->GetInteger());
797 } 794 }
798 } 795 }
799 vp << pObj; 796 vp << pObj;
800 } 797 }
801 return TRUE; 798 return TRUE;
802 } 799 }
803 800
804 FX_BOOL Document::creationDate(IJS_Context* cc, 801 FX_BOOL Document::creationDate(IJS_Context* cc,
805 CJS_PropValue& vp, 802 CJS_PropValue& vp,
806 CFX_WideString& sError) { 803 CFX_WideString& sError) {
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after
1589 } 1586 }
1590 } 1587 }
1591 1588
1592 for (const auto& pData : DelayDataForFieldAndControlIndex) 1589 for (const auto& pData : DelayDataForFieldAndControlIndex)
1593 Field::DoDelay(m_pDocument, pData.get()); 1590 Field::DoDelay(m_pDocument, pData.get());
1594 } 1591 }
1595 1592
1596 CJS_Document* Document::GetCJSDoc() const { 1593 CJS_Document* Document::GetCJSDoc() const {
1597 return static_cast<CJS_Document*>(m_pJSObject); 1594 return static_cast<CJS_Document*>(m_pJSObject);
1598 } 1595 }
OLDNEW
« no previous file with comments | « no previous file | fpdfsdk/javascript/JS_Value.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698