From a2cb1e5c598a70d0aed617d42ee83287a7ef4e2e Mon Sep 17 00:00:00 2001 From: Vladimir Olteanu Date: Fri, 30 Apr 2021 14:22:24 +0300 Subject: [PATCH] Cleanup pfile_encode_hero --- Source/pfile.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Source/pfile.cpp b/Source/pfile.cpp index ef6f43cc2..47fbbe024 100644 --- a/Source/pfile.cpp +++ b/Source/pfile.cpp @@ -173,17 +173,14 @@ static bool pfile_read_hero(HANDLE archive, PkPlayerStruct *pPack) return ret; } -static void pfile_encode_hero(const PkPlayerStruct *pPack) +static void pfile_encode_hero(const PkPlayerStruct *pack) { - BYTE *packed; - DWORD packed_len; - - packed_len = codec_get_encoded_len(sizeof(*pPack)); - packed = (BYTE *)DiabloAllocPtr(packed_len); - memcpy(packed, pPack, sizeof(*pPack)); - codec_encode(packed, sizeof(*pPack), packed_len, pfile_get_password()); - mpqapi_write_file("hero", packed, packed_len); - mem_free_dbg(packed); + size_t packedLen = codec_get_encoded_len(sizeof(*pack)); + auto packed = std::make_unique(packedLen); + + memcpy(packed.get(), pack, sizeof(*pack)); + codec_encode(packed.get(), sizeof(*pack), packedLen, pfile_get_password()); + mpqapi_write_file("hero", packed.get(), packedLen); } static bool pfile_open_archive(DWORD save_num)