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 "xfa/fxfa/parser/xfa_basic_imp.h" | 7 #include "xfa/fxfa/parser/xfa_basic_imp.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fgas/crt/fgas_codepage.h" | 10 #include "xfa/fgas/crt/fgas_codepage.h" |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
550 int32_t CXFA_WideTextRead::GetPosition() { | 550 int32_t CXFA_WideTextRead::GetPosition() { |
551 return m_iPosition * sizeof(FX_WCHAR); | 551 return m_iPosition * sizeof(FX_WCHAR); |
552 } | 552 } |
553 FX_BOOL CXFA_WideTextRead::IsEOF() const { | 553 FX_BOOL CXFA_WideTextRead::IsEOF() const { |
554 return m_iPosition >= m_wsBuffer.GetLength(); | 554 return m_iPosition >= m_wsBuffer.GetLength(); |
555 } | 555 } |
556 int32_t CXFA_WideTextRead::ReadString(FX_WCHAR* pStr, | 556 int32_t CXFA_WideTextRead::ReadString(FX_WCHAR* pStr, |
557 int32_t iMaxLength, | 557 int32_t iMaxLength, |
558 FX_BOOL& bEOS, | 558 FX_BOOL& bEOS, |
559 int32_t const* pByteSize) { | 559 int32_t const* pByteSize) { |
560 if (iMaxLength > m_wsBuffer.GetLength() - m_iPosition) { | 560 if (iMaxLength > m_wsBuffer.GetLength() - m_iPosition) |
561 iMaxLength = m_wsBuffer.GetLength() - m_iPosition; | 561 iMaxLength = m_wsBuffer.GetLength() - m_iPosition; |
562 } | 562 if (iMaxLength == 0) |
dsinclair
2016/06/13 20:05:47
This is needed because the corpus was seeding with
Oliver Chang
2016/06/13 20:11:19
It's probably best to do
if (size == 0)
return
dsinclair
2016/06/13 20:19:22
I think the check is valid here. We can't proceed
| |
563 return 0; | |
564 | |
563 FXSYS_wcsncpy(pStr, m_wsBuffer.c_str() + m_iPosition, iMaxLength); | 565 FXSYS_wcsncpy(pStr, m_wsBuffer.c_str() + m_iPosition, iMaxLength); |
564 m_iPosition += iMaxLength; | 566 m_iPosition += iMaxLength; |
565 bEOS = IsEOF(); | 567 bEOS = IsEOF(); |
566 return iMaxLength; | 568 return iMaxLength; |
567 } | 569 } |
568 uint16_t CXFA_WideTextRead::GetCodePage() const { | 570 uint16_t CXFA_WideTextRead::GetCodePage() const { |
569 return (sizeof(FX_WCHAR) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE; | 571 return (sizeof(FX_WCHAR) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE; |
570 } | 572 } |
571 uint16_t CXFA_WideTextRead::SetCodePage(uint16_t wCodePage) { | 573 uint16_t CXFA_WideTextRead::SetCodePage(uint16_t wCodePage) { |
572 return GetCodePage(); | 574 return GetCodePage(); |
573 } | 575 } |
OLD | NEW |