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

Side by Side Diff: xfa/fxfa/fm2js/xfa_simpleexpression.cpp

Issue 1919563002: Pass CFX_*StringCs to FX_HashCode_GETA and _GETW hash functions. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: fix issue from c4 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 | « xfa/fxfa/fm2js/xfa_lexer.cpp ('k') | xfa/fxfa/parser/cxfa_widgetdata.cpp » ('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 "xfa/fxfa/fm2js/xfa_simpleexpression.h" 7 #include "xfa/fxfa/fm2js/xfa_simpleexpression.h"
8 8
9 #include "core/fxcrt/include/fx_ext.h" 9 #include "core/fxcrt/include/fx_ext.h"
10 10
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 if (m_pArguments) { 476 if (m_pArguments) {
477 for (int i = 0; i < m_pArguments->GetSize(); ++i) { 477 for (int i = 0; i < m_pArguments->GetSize(); ++i) {
478 delete reinterpret_cast<CXFA_FMSimpleExpression*>(m_pArguments->GetAt(i)); 478 delete reinterpret_cast<CXFA_FMSimpleExpression*>(m_pArguments->GetAt(i));
479 } 479 }
480 m_pArguments->RemoveAll(); 480 m_pArguments->RemoveAll();
481 delete m_pArguments; 481 delete m_pArguments;
482 } 482 }
483 } 483 }
484 484
485 bool CXFA_FMCallExpression::IsBuildInFunc(CFX_WideTextBuf* funcName) { 485 bool CXFA_FMCallExpression::IsBuildInFunc(CFX_WideTextBuf* funcName) {
486 uint32_t uHash = FX_HashCode_String_GetW(funcName->GetBuffer(), 486 uint32_t uHash = FX_HashCode_GetW(funcName->AsStringC(), true);
487 funcName->GetLength(), TRUE);
488 const XFA_FMBuildInFunc* pEnd = g_BuildInFuncs + FX_ArraySize(g_BuildInFuncs); 487 const XFA_FMBuildInFunc* pEnd = g_BuildInFuncs + FX_ArraySize(g_BuildInFuncs);
489 const XFA_FMBuildInFunc* pFunc = 488 const XFA_FMBuildInFunc* pFunc =
490 std::lower_bound(g_BuildInFuncs, pEnd, uHash, 489 std::lower_bound(g_BuildInFuncs, pEnd, uHash,
491 [](const XFA_FMBuildInFunc& func, uint32_t hash) { 490 [](const XFA_FMBuildInFunc& func, uint32_t hash) {
492 return func.m_uHash < hash; 491 return func.m_uHash < hash;
493 }); 492 });
494 if (pFunc < pEnd && uHash == pFunc->m_uHash) { 493 if (pFunc < pEnd && uHash == pFunc->m_uHash) {
495 funcName->Clear(); 494 funcName->Clear();
496 *funcName << pFunc->m_buildinfunc; 495 *funcName << pFunc->m_buildinfunc;
497 return true; 496 return true;
498 } 497 }
499 return false; 498 return false;
500 } 499 }
501 500
502 uint32_t CXFA_FMCallExpression::IsMethodWithObjParam( 501 uint32_t CXFA_FMCallExpression::IsMethodWithObjParam(
503 const CFX_WideStringC& methodName) { 502 const CFX_WideStringC& methodName) {
504 int32_t iLength = methodName.GetLength(); 503 uint32_t uHash = FX_HashCode_GetW(methodName, false);
505 uint32_t uHash = FX_HashCode_String_GetW(methodName.c_str(), iLength);
506 XFA_FMSOMMethod somMethodWithObjPara; 504 XFA_FMSOMMethod somMethodWithObjPara;
507 uint32_t parameters = 0x00; 505 uint32_t parameters = 0x00;
508 int32_t iStart = 0, 506 int32_t iStart = 0,
509 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1; 507 iEnd = (sizeof(gs_FMSomMethods) / sizeof(gs_FMSomMethods[0])) - 1;
510 int32_t iMid = (iStart + iEnd) / 2; 508 int32_t iMid = (iStart + iEnd) / 2;
511 do { 509 do {
512 iMid = (iStart + iEnd) / 2; 510 iMid = (iStart + iEnd) / 2;
513 somMethodWithObjPara = gs_FMSomMethods[iMid]; 511 somMethodWithObjPara = gs_FMSomMethods[iMid];
514 if (uHash == somMethodWithObjPara.m_uHash) { 512 if (uHash == somMethodWithObjPara.m_uHash) {
515 parameters = somMethodWithObjPara.m_dParameters; 513 parameters = somMethodWithObjPara.m_dParameters;
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n"); 735 L"for(var index = accessor_object.length - 1; index > 1; index--)\n{\n");
738 javascript << FX_WSTRC(L"method_return_value = accessor_object[index]."); 736 javascript << FX_WSTRC(L"method_return_value = accessor_object[index].");
739 m_pExp2->ToJavaScript(javascript); 737 m_pExp2->ToJavaScript(javascript);
740 javascript << FX_WSTRC(L";\n}\n}\n"); 738 javascript << FX_WSTRC(L";\n}\n}\n");
741 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object."); 739 javascript << FX_WSTRC(L"else\n{\nmethod_return_value = accessor_object.");
742 m_pExp2->ToJavaScript(javascript); 740 m_pExp2->ToJavaScript(javascript);
743 javascript << FX_WSTRC(L";\n}\n"); 741 javascript << FX_WSTRC(L";\n}\n");
744 javascript << FX_WSTRC(L"return method_return_value;\n"); 742 javascript << FX_WSTRC(L"return method_return_value;\n");
745 javascript << FX_WSTRC(L"}\n).call(this)"); 743 javascript << FX_WSTRC(L"}\n).call(this)");
746 } 744 }
OLDNEW
« no previous file with comments | « xfa/fxfa/fm2js/xfa_lexer.cpp ('k') | xfa/fxfa/parser/cxfa_widgetdata.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698