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 "public/fpdfview.h" | 7 #include "public/fpdfview.h" |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <utility> | 10 #include <utility> |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 void CPDF_CustomAccess::Release() { | 185 void CPDF_CustomAccess::Release() { |
186 delete this; | 186 delete this; |
187 } | 187 } |
188 | 188 |
189 bool CPDF_CustomAccess::ReadBlock(void* buffer, | 189 bool CPDF_CustomAccess::ReadBlock(void* buffer, |
190 FX_FILESIZE offset, | 190 FX_FILESIZE offset, |
191 size_t size) { | 191 size_t size) { |
192 if (offset < 0) | 192 if (offset < 0) |
193 return false; | 193 return false; |
194 | 194 |
195 FX_SAFE_FILESIZE newPos = | 195 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size); |
196 pdfium::base::checked_cast<FX_FILESIZE, size_t>(size); | |
197 newPos += offset; | 196 newPos += offset; |
198 if (!newPos.IsValid() || | 197 if (!newPos.IsValid() || |
199 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) { | 198 newPos.ValueOrDie() > static_cast<FX_FILESIZE>(m_FileAccess.m_FileLen)) { |
200 return false; | 199 return false; |
201 } | 200 } |
202 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, | 201 return !!m_FileAccess.m_GetBlock(m_FileAccess.m_Param, offset, |
203 reinterpret_cast<uint8_t*>(buffer), size); | 202 reinterpret_cast<uint8_t*>(buffer), size); |
204 } | 203 } |
205 | 204 |
206 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS | 205 // 0 bit: FPDF_POLICY_MACHINETIME_ACCESS |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
381 class CMemFile final : public IFX_SeekableReadStream { | 380 class CMemFile final : public IFX_SeekableReadStream { |
382 public: | 381 public: |
383 CMemFile(uint8_t* pBuf, FX_FILESIZE size) : m_pBuf(pBuf), m_size(size) {} | 382 CMemFile(uint8_t* pBuf, FX_FILESIZE size) : m_pBuf(pBuf), m_size(size) {} |
384 | 383 |
385 void Release() override { delete this; } | 384 void Release() override { delete this; } |
386 FX_FILESIZE GetSize() override { return m_size; } | 385 FX_FILESIZE GetSize() override { return m_size; } |
387 bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { | 386 bool ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override { |
388 if (offset < 0) { | 387 if (offset < 0) { |
389 return false; | 388 return false; |
390 } | 389 } |
391 FX_SAFE_FILESIZE newPos = | 390 FX_SAFE_FILESIZE newPos = pdfium::base::checked_cast<FX_FILESIZE>(size); |
392 pdfium::base::checked_cast<FX_FILESIZE, size_t>(size); | |
393 newPos += offset; | 391 newPos += offset; |
394 if (!newPos.IsValid() || newPos.ValueOrDie() > m_size) { | 392 if (!newPos.IsValid() || newPos.ValueOrDie() > m_size) { |
395 return false; | 393 return false; |
396 } | 394 } |
397 FXSYS_memcpy(buffer, m_pBuf + offset, size); | 395 FXSYS_memcpy(buffer, m_pBuf + offset, size); |
398 return true; | 396 return true; |
399 } | 397 } |
400 | 398 |
401 private: | 399 private: |
402 ~CMemFile() override {} | 400 ~CMemFile() override {} |
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1110 if (!buffer) { | 1108 if (!buffer) { |
1111 *buflen = len; | 1109 *buflen = len; |
1112 } else if (*buflen >= len) { | 1110 } else if (*buflen >= len) { |
1113 memcpy(buffer, utf16Name.c_str(), len); | 1111 memcpy(buffer, utf16Name.c_str(), len); |
1114 *buflen = len; | 1112 *buflen = len; |
1115 } else { | 1113 } else { |
1116 *buflen = -1; | 1114 *buflen = -1; |
1117 } | 1115 } |
1118 return (FPDF_DEST)pDestObj; | 1116 return (FPDF_DEST)pDestObj; |
1119 } | 1117 } |
OLD | NEW |