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 "../../../include/fpdfapi/fpdf_parser.h" | 7 #include "../../../include/fpdfapi/fpdf_parser.h" |
8 #include "../../../include/fpdfapi/fpdf_module.h" | 8 #include "../../../include/fpdfapi/fpdf_module.h" |
9 #include "../../../include/fpdfapi/fpdf_page.h" | 9 #include "../../../include/fpdfapi/fpdf_page.h" |
10 #include "../../../src/fxcrt/fx_safe_types.h" | 10 #include "../../../src/fxcrt/fx_safe_types.h" |
(...skipping 2544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2555 { | 2555 { |
2556 FX_INT32 taglen = tag.GetLength(); | 2556 FX_INT32 taglen = tag.GetLength(); |
2557 if (taglen == 0) { | 2557 if (taglen == 0) { |
2558 return FALSE; | 2558 return FALSE; |
2559 } | 2559 } |
2560 FX_FILESIZE pos = m_Pos; | 2560 FX_FILESIZE pos = m_Pos; |
2561 FX_INT32 offset = 0; | 2561 FX_INT32 offset = 0; |
2562 if (!bForward) { | 2562 if (!bForward) { |
2563 offset = taglen - 1; | 2563 offset = taglen - 1; |
2564 } | 2564 } |
2565 FX_LPCBYTE tag_data = tag; | 2565 FX_LPCBYTE tag_data = tag.GetPtr(); |
2566 FX_BYTE byte; | 2566 FX_BYTE byte; |
2567 while (1) { | 2567 while (1) { |
2568 if (bForward) { | 2568 if (bForward) { |
2569 if (limit) { | 2569 if (limit) { |
2570 if (pos >= m_Pos + limit) { | 2570 if (pos >= m_Pos + limit) { |
2571 return FALSE; | 2571 return FALSE; |
2572 } | 2572 } |
2573 } | 2573 } |
2574 if (!GetCharAt(pos, byte)) { | 2574 if (!GetCharAt(pos, byte)) { |
2575 return FALSE; | 2575 return FALSE; |
(...skipping 16 matching lines...) Expand all Loading... |
2592 continue; | 2592 continue; |
2593 } | 2593 } |
2594 } else { | 2594 } else { |
2595 offset --; | 2595 offset --; |
2596 if (offset >= 0) { | 2596 if (offset >= 0) { |
2597 pos --; | 2597 pos --; |
2598 continue; | 2598 continue; |
2599 } | 2599 } |
2600 } | 2600 } |
2601 FX_FILESIZE startpos = bForward ? pos - taglen + 1 : pos; | 2601 FX_FILESIZE startpos = bForward ? pos - taglen + 1 : pos; |
2602 if (!bWholeWord || IsWholeWord(startpos, limit, tag, taglen)) { | 2602 if (!bWholeWord || IsWholeWord(startpos, limit, tag.GetPtr(), taglen
)) { |
2603 m_Pos = startpos; | 2603 m_Pos = startpos; |
2604 return TRUE; | 2604 return TRUE; |
2605 } | 2605 } |
2606 } | 2606 } |
2607 if (bForward) { | 2607 if (bForward) { |
2608 offset = byte == tag_data[0] ? 1 : 0; | 2608 offset = byte == tag_data[0] ? 1 : 0; |
2609 pos ++; | 2609 pos ++; |
2610 } else { | 2610 } else { |
2611 offset = byte == tag_data[taglen - 1] ? taglen - 2 : taglen - 1; | 2611 offset = byte == tag_data[taglen - 1] ? taglen - 2 : taglen - 1; |
2612 pos --; | 2612 pos --; |
(...skipping 2033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4646 { | 4646 { |
4647 FX_INT32 iSize = m_childNode.GetSize(); | 4647 FX_INT32 iSize = m_childNode.GetSize(); |
4648 for (FX_INT32 i = 0; i < iSize; ++i) { | 4648 for (FX_INT32 i = 0; i < iSize; ++i) { |
4649 CPDF_PageNode *pNode = (CPDF_PageNode*)m_childNode[i]; | 4649 CPDF_PageNode *pNode = (CPDF_PageNode*)m_childNode[i]; |
4650 if (pNode) { | 4650 if (pNode) { |
4651 delete pNode; | 4651 delete pNode; |
4652 } | 4652 } |
4653 } | 4653 } |
4654 m_childNode.RemoveAll(); | 4654 m_childNode.RemoveAll(); |
4655 } | 4655 } |
OLD | NEW |