| 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/fxcrt/fx_basic.h" | 7 #include "../../include/fxcrt/fx_basic.h" |
| 8 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf); | 8 FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf); |
| 9 CFX_BinaryBuf::CFX_BinaryBuf() | 9 CFX_BinaryBuf::CFX_BinaryBuf() |
| 10 : m_AllocStep(0) | 10 : m_AllocStep(0) |
| (...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 return *this; | 235 return *this; |
| 236 } | 236 } |
| 237 void CFX_WideTextBuf::operator =(const CFX_WideStringC& str) | 237 void CFX_WideTextBuf::operator =(const CFX_WideStringC& str) |
| 238 { | 238 { |
| 239 CopyData(str.GetPtr(), str.GetLength() * sizeof(FX_WCHAR)); | 239 CopyData(str.GetPtr(), str.GetLength() * sizeof(FX_WCHAR)); |
| 240 } | 240 } |
| 241 CFX_WideStringC CFX_WideTextBuf::GetWideString() const | 241 CFX_WideStringC CFX_WideTextBuf::GetWideString() const |
| 242 { | 242 { |
| 243 return CFX_WideStringC((const FX_WCHAR*)m_pBuffer, m_DataSize / sizeof(FX_WC
HAR)); | 243 return CFX_WideStringC((const FX_WCHAR*)m_pBuffer, m_DataSize / sizeof(FX_WC
HAR)); |
| 244 } | 244 } |
| 245 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (uint8_t i) | |
| 246 { | |
| 247 if (m_pStream) { | |
| 248 m_pStream->WriteBlock(&i, 1); | |
| 249 } else { | |
| 250 m_SavingBuf.AppendByte(i); | |
| 251 } | |
| 252 return *this; | |
| 253 } | |
| 254 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (int i) | |
| 255 { | |
| 256 if (m_pStream) { | |
| 257 m_pStream->WriteBlock(&i, sizeof(int)); | |
| 258 } else { | |
| 259 m_SavingBuf.AppendBlock(&i, sizeof(int)); | |
| 260 } | |
| 261 return *this; | |
| 262 } | |
| 263 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (FX_DWORD i) | |
| 264 { | |
| 265 if (m_pStream) { | |
| 266 m_pStream->WriteBlock(&i, sizeof(FX_DWORD)); | |
| 267 } else { | |
| 268 m_SavingBuf.AppendBlock(&i, sizeof(FX_DWORD)); | |
| 269 } | |
| 270 return *this; | |
| 271 } | |
| 272 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (FX_FLOAT f) | |
| 273 { | |
| 274 if (m_pStream) { | |
| 275 m_pStream->WriteBlock(&f, sizeof(FX_FLOAT)); | |
| 276 } else { | |
| 277 m_SavingBuf.AppendBlock(&f, sizeof(FX_FLOAT)); | |
| 278 } | |
| 279 return *this; | |
| 280 } | |
| 281 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (const CFX_ByteStringC& bstr) | |
| 282 { | |
| 283 int len = bstr.GetLength(); | |
| 284 if (m_pStream) { | |
| 285 m_pStream->WriteBlock(&len, sizeof(int)); | |
| 286 m_pStream->WriteBlock(bstr.GetPtr(), len); | |
| 287 } else { | |
| 288 m_SavingBuf.AppendBlock(&len, sizeof(int)); | |
| 289 m_SavingBuf.AppendBlock(bstr.GetPtr(), len); | |
| 290 } | |
| 291 return *this; | |
| 292 } | |
| 293 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (const FX_WCHAR* wstr) | |
| 294 { | |
| 295 FX_STRSIZE len = FXSYS_wcslen(wstr); | |
| 296 if (m_pStream) { | |
| 297 m_pStream->WriteBlock(&len, sizeof(int)); | |
| 298 m_pStream->WriteBlock(wstr, len); | |
| 299 } else { | |
| 300 m_SavingBuf.AppendBlock(&len, sizeof(int)); | |
| 301 m_SavingBuf.AppendBlock(wstr, len); | |
| 302 } | |
| 303 return *this; | |
| 304 } | |
| 305 CFX_ArchiveSaver& CFX_ArchiveSaver::operator << (const CFX_WideString& wstr) | |
| 306 { | |
| 307 CFX_ByteString encoded = wstr.UTF16LE_Encode(); | |
| 308 return operator << (encoded); | |
| 309 } | |
| 310 void CFX_ArchiveSaver::Write(const void* pData, FX_STRSIZE dwSize) | |
| 311 { | |
| 312 if (m_pStream) { | |
| 313 m_pStream->WriteBlock(pData, dwSize); | |
| 314 } else { | |
| 315 m_SavingBuf.AppendBlock(pData, dwSize); | |
| 316 } | |
| 317 } | |
| 318 CFX_ArchiveLoader::CFX_ArchiveLoader(const uint8_t* pData, FX_DWORD dwSize) | |
| 319 { | |
| 320 m_pLoadingBuf = pData; | |
| 321 m_LoadingPos = 0; | |
| 322 m_LoadingSize = dwSize; | |
| 323 } | |
| 324 FX_BOOL CFX_ArchiveLoader::IsEOF() | |
| 325 { | |
| 326 return m_LoadingPos >= m_LoadingSize; | |
| 327 } | |
| 328 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (uint8_t& i) | |
| 329 { | |
| 330 if (m_LoadingPos >= m_LoadingSize) { | |
| 331 return *this; | |
| 332 } | |
| 333 i = m_pLoadingBuf[m_LoadingPos++]; | |
| 334 return *this; | |
| 335 } | |
| 336 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (int& i) | |
| 337 { | |
| 338 Read(&i, sizeof(int)); | |
| 339 return *this; | |
| 340 } | |
| 341 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (FX_DWORD& i) | |
| 342 { | |
| 343 Read(&i, sizeof(FX_DWORD)); | |
| 344 return *this; | |
| 345 } | |
| 346 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (FX_FLOAT& i) | |
| 347 { | |
| 348 Read(&i, sizeof(FX_FLOAT)); | |
| 349 return *this; | |
| 350 } | |
| 351 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (CFX_ByteString& str) | |
| 352 { | |
| 353 if (m_LoadingPos + 4 > m_LoadingSize) { | |
| 354 return *this; | |
| 355 } | |
| 356 int len; | |
| 357 operator >> (len); | |
| 358 str.Empty(); | |
| 359 if (len <= 0 || m_LoadingPos + len > m_LoadingSize) { | |
| 360 return *this; | |
| 361 } | |
| 362 FX_CHAR* buffer = str.GetBuffer(len); | |
| 363 FXSYS_memcpy(buffer, m_pLoadingBuf + m_LoadingPos, len); | |
| 364 str.ReleaseBuffer(len); | |
| 365 m_LoadingPos += len; | |
| 366 return *this; | |
| 367 } | |
| 368 CFX_ArchiveLoader& CFX_ArchiveLoader::operator >> (CFX_WideString& str) | |
| 369 { | |
| 370 CFX_ByteString encoded; | |
| 371 operator >> (encoded); | |
| 372 str = CFX_WideString::FromUTF16LE((const unsigned short*)encoded.c_str(), en
coded.GetLength()); | |
| 373 return *this; | |
| 374 } | |
| 375 FX_BOOL CFX_ArchiveLoader::Read(void* pBuf, FX_DWORD dwSize) | |
| 376 { | |
| 377 if (m_LoadingPos + dwSize > m_LoadingSize) { | |
| 378 return FALSE; | |
| 379 } | |
| 380 FXSYS_memcpy(pBuf, m_pLoadingBuf + m_LoadingPos, dwSize); | |
| 381 m_LoadingPos += dwSize; | |
| 382 return TRUE; | |
| 383 } | |
| 384 void CFX_BitStream::Init(const uint8_t* pData, FX_DWORD dwSize) | 245 void CFX_BitStream::Init(const uint8_t* pData, FX_DWORD dwSize) |
| 385 { | 246 { |
| 386 m_pData = pData; | 247 m_pData = pData; |
| 387 m_BitSize = dwSize * 8; | 248 m_BitSize = dwSize * 8; |
| 388 m_BitPos = 0; | 249 m_BitPos = 0; |
| 389 } | 250 } |
| 390 void CFX_BitStream::ByteAlign() | 251 void CFX_BitStream::ByteAlign() |
| 391 { | 252 { |
| 392 int mod = m_BitPos % 8; | 253 int mod = m_BitPos % 8; |
| 393 if (mod == 0) { | 254 if (mod == 0) { |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 FX_BOOL CFX_FileBufferArchive::DoWork(const void* pBuf, size_t size) | 410 FX_BOOL CFX_FileBufferArchive::DoWork(const void* pBuf, size_t size) |
| 550 { | 411 { |
| 551 if (!m_pFile) { | 412 if (!m_pFile) { |
| 552 return FALSE; | 413 return FALSE; |
| 553 } | 414 } |
| 554 if (!pBuf || size < 1) { | 415 if (!pBuf || size < 1) { |
| 555 return TRUE; | 416 return TRUE; |
| 556 } | 417 } |
| 557 return m_pFile->WriteBlock(pBuf, size); | 418 return m_pFile->WriteBlock(pBuf, size); |
| 558 } | 419 } |
| OLD | NEW |