From c7041d6e97c20b2073cf36bc9a072fa1cceda64a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 2 Dec 2022 22:45:28 +0100 Subject: [PATCH] Reserve some space in the checkpoints vector --- Common/Serialize/Serializer.cpp | 2 +- Common/Serialize/Serializer.h | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Common/Serialize/Serializer.cpp b/Common/Serialize/Serializer.cpp index 1070dd7a66..ebe0e10d68 100644 --- a/Common/Serialize/Serializer.cpp +++ b/Common/Serialize/Serializer.cpp @@ -35,7 +35,7 @@ static constexpr SerializeCompressType SAVE_TYPE = SerializeCompressType::ZSTD; void PointerWrap::RewindForWrite(u8 *writePtr) { _assert_(mode == MODE_MEASURE); - // Switch to writing mode and + // Switch to writing mode, save the size for later checking and start again. measuredSize_ = Offset(); mode = MODE_WRITE; *ptr = writePtr; diff --git a/Common/Serialize/Serializer.h b/Common/Serialize/Serializer.h index ab8500bf28..5169e4a120 100644 --- a/Common/Serialize/Serializer.h +++ b/Common/Serialize/Serializer.h @@ -111,8 +111,11 @@ public: Mode mode; Error error = ERROR_NONE; - PointerWrap(u8 **ptr_, Mode mode_) : ptr(ptr_), ptrStart_(*ptr), mode(mode_) {} - PointerWrap(unsigned char **ptr_, int mode_) : ptr((u8**)ptr_), ptrStart_(*ptr), mode((Mode)mode_) {} + PointerWrap(u8 **ptr_, Mode mode_) : ptr(ptr_), ptrStart_(*ptr), mode(mode_) { + if (mode == MODE_MEASURE) { + checkpoints_.reserve(750); + } + } void RewindForWrite(u8 *writePtr); bool CheckAfterWrite(); @@ -143,7 +146,6 @@ public: size_t Offset() const { return *ptr - ptrStart_; } private: - const char *firstBadSectionTitle_ = nullptr; u8 *ptrStart_; std::vector checkpoints_;