Get rid of some needless pointer arithmetic in GenerateFileID().
We are starting to consider pFoo++ as a code smell.
- Return a ByteString since all callers want one.
- Slight reorder for easier reading.
Change-Id: I98adb1c55aec9079063fcee248847bfdf8494c17
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/51933
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp
index da3a9d3..3915c1b 100644
--- a/core/fpdfapi/edit/cpdf_creator.cpp
+++ b/core/fpdfapi/edit/cpdf_creator.cpp
@@ -115,20 +115,17 @@
return WriteBlock(str.raw_str(), str.GetLength());
}
-std::vector<uint8_t> GenerateFileID(uint32_t dwSeed1, uint32_t dwSeed2) {
- std::vector<uint8_t> buffer(sizeof(uint32_t) * 4);
- uint32_t* pBuffer = reinterpret_cast<uint32_t*>(buffer.data());
- void* pContext = FX_Random_MT_Start(dwSeed1);
- for (int i = 0; i < 2; ++i)
- *pBuffer++ = FX_Random_MT_Generate(pContext);
-
- FX_Random_MT_Close(pContext);
- pContext = FX_Random_MT_Start(dwSeed2);
- for (int i = 0; i < 2; ++i)
- *pBuffer++ = FX_Random_MT_Generate(pContext);
-
- FX_Random_MT_Close(pContext);
- return buffer;
+ByteString GenerateFileID(uint32_t dwSeed1, uint32_t dwSeed2) {
+ uint32_t buffer[4];
+ void* pContext1 = FX_Random_MT_Start(dwSeed1);
+ void* pContext2 = FX_Random_MT_Start(dwSeed2);
+ buffer[0] = FX_Random_MT_Generate(pContext1);
+ buffer[1] = FX_Random_MT_Generate(pContext1);
+ buffer[2] = FX_Random_MT_Generate(pContext2);
+ buffer[3] = FX_Random_MT_Generate(pContext2);
+ FX_Random_MT_Close(pContext1);
+ FX_Random_MT_Close(pContext2);
+ return ByteString(pdfium::as_bytes<uint32_t>(buffer));
}
bool OutputIndex(IFX_ArchiveStream* archive, FX_FILESIZE offset) {
@@ -600,9 +597,8 @@
if (pID1) {
m_pIDArray->Add(pID1->Clone());
} else {
- std::vector<uint8_t> buffer =
+ ByteString bsBuffer =
GenerateFileID((uint32_t)(uintptr_t)this, m_dwLastObjNum);
- ByteString bsBuffer(buffer.data(), buffer.size());
m_pIDArray->AddNew<CPDF_String>(bsBuffer, true);
}
@@ -612,9 +608,8 @@
m_pIDArray->Add(pID2->Clone());
return;
}
- std::vector<uint8_t> buffer =
+ ByteString bsBuffer =
GenerateFileID((uint32_t)(uintptr_t)this, m_dwLastObjNum);
- ByteString bsBuffer(buffer.data(), buffer.size());
m_pIDArray->AddNew<CPDF_String>(bsBuffer, true);
return;
}