| 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 "core/fpdfapi/fpdf_page/pageint.h" | 7 #include "core/fpdfapi/fpdf_page/pageint.h" |
| 8 | 8 |
| 9 #include <limits.h> | 9 #include <limits.h> |
| 10 | 10 |
| (...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 int status = 0; | 495 int status = 0; |
| 496 int iEscCode = 0; | 496 int iEscCode = 0; |
| 497 while (1) { | 497 while (1) { |
| 498 switch (status) { | 498 switch (status) { |
| 499 case 0: | 499 case 0: |
| 500 if (ch == ')') { | 500 if (ch == ')') { |
| 501 if (parlevel == 0) { | 501 if (parlevel == 0) { |
| 502 if (buf.GetLength() > kMaxStringLength) { | 502 if (buf.GetLength() > kMaxStringLength) { |
| 503 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); | 503 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); |
| 504 } | 504 } |
| 505 return buf.AsStringC(); | 505 return buf.MakeString(); |
| 506 } | 506 } |
| 507 parlevel--; | 507 parlevel--; |
| 508 buf.AppendChar(')'); | 508 buf.AppendChar(')'); |
| 509 } else if (ch == '(') { | 509 } else if (ch == '(') { |
| 510 parlevel++; | 510 parlevel++; |
| 511 buf.AppendChar('('); | 511 buf.AppendChar('('); |
| 512 } else if (ch == '\\') { | 512 } else if (ch == '\\') { |
| 513 status = 1; | 513 status = 1; |
| 514 } else { | 514 } else { |
| 515 buf.AppendChar((char)ch); | 515 buf.AppendChar((char)ch); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 574 break; | 574 break; |
| 575 | 575 |
| 576 ch = m_pBuf[m_Pos++]; | 576 ch = m_pBuf[m_Pos++]; |
| 577 } | 577 } |
| 578 if (PositionIsInBounds()) | 578 if (PositionIsInBounds()) |
| 579 ++m_Pos; | 579 ++m_Pos; |
| 580 | 580 |
| 581 if (buf.GetLength() > kMaxStringLength) { | 581 if (buf.GetLength() > kMaxStringLength) { |
| 582 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); | 582 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); |
| 583 } | 583 } |
| 584 return buf.AsStringC(); | 584 return buf.MakeString(); |
| 585 } | 585 } |
| 586 | 586 |
| 587 CFX_ByteString CPDF_StreamParser::ReadHexString() { | 587 CFX_ByteString CPDF_StreamParser::ReadHexString() { |
| 588 if (!PositionIsInBounds()) | 588 if (!PositionIsInBounds()) |
| 589 return CFX_ByteString(); | 589 return CFX_ByteString(); |
| 590 | 590 |
| 591 CFX_ByteTextBuf buf; | 591 CFX_ByteTextBuf buf; |
| 592 bool bFirst = true; | 592 bool bFirst = true; |
| 593 int code = 0; | 593 int code = 0; |
| 594 while (PositionIsInBounds()) { | 594 while (PositionIsInBounds()) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 608 buf.AppendByte((uint8_t)code); | 608 buf.AppendByte((uint8_t)code); |
| 609 } | 609 } |
| 610 bFirst = !bFirst; | 610 bFirst = !bFirst; |
| 611 } | 611 } |
| 612 if (!bFirst) | 612 if (!bFirst) |
| 613 buf.AppendChar((char)code); | 613 buf.AppendChar((char)code); |
| 614 | 614 |
| 615 if (buf.GetLength() > kMaxStringLength) | 615 if (buf.GetLength() > kMaxStringLength) |
| 616 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); | 616 return CFX_ByteString(buf.GetBuffer(), kMaxStringLength); |
| 617 | 617 |
| 618 return buf.AsStringC(); | 618 return buf.MakeString(); |
| 619 } | 619 } |
| 620 | 620 |
| 621 bool CPDF_StreamParser::PositionIsInBounds() const { | 621 bool CPDF_StreamParser::PositionIsInBounds() const { |
| 622 return m_Pos < m_Size; | 622 return m_Pos < m_Size; |
| 623 } | 623 } |
| 624 | 624 |
| 625 CPDF_ContentParser::CPDF_ContentParser() | 625 CPDF_ContentParser::CPDF_ContentParser() |
| 626 : m_Status(Ready), | 626 : m_Status(Ready), |
| 627 m_InternalStage(STAGE_GETCONTENT), | 627 m_InternalStage(STAGE_GETCONTENT), |
| 628 m_pObjectHolder(nullptr), | 628 m_pObjectHolder(nullptr), |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 820 } | 820 } |
| 821 m_Status = Done; | 821 m_Status = Done; |
| 822 return; | 822 return; |
| 823 } | 823 } |
| 824 steps++; | 824 steps++; |
| 825 if (pPause && pPause->NeedToPauseNow()) { | 825 if (pPause && pPause->NeedToPauseNow()) { |
| 826 break; | 826 break; |
| 827 } | 827 } |
| 828 } | 828 } |
| 829 } | 829 } |
| OLD | NEW |