From edd63c14a4adcaf3ed18383cb86475fa13ce73ae Mon Sep 17 00:00:00 2001 From: Rohit Nirmal Date: Fri, 12 Sep 2014 12:03:06 -0400 Subject: [PATCH] CBoot: Use vectors instead of raw pointers in ELF functions. --- Source/Core/Core/Boot/Boot_ELF.cpp | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/Source/Core/Core/Boot/Boot_ELF.cpp b/Source/Core/Core/Boot/Boot_ELF.cpp index 0254a134af..0a14b24ad7 100644 --- a/Source/Core/Core/Boot/Boot_ELF.cpp +++ b/Source/Core/Core/Boot/Boot_ELF.cpp @@ -15,11 +15,11 @@ bool CBoot::IsElfWii(const std::string& filename) there is no need for another check, just read the file right away */ const u64 filesize = File::GetSize(filename); - u8 *const mem = new u8[(size_t)filesize]; + std::vector mem((size_t)filesize); { File::IOFile f(filename, "rb"); - f.ReadBytes(mem, (size_t)filesize); + f.ReadBytes(mem.data(), (size_t)filesize); } // Use the same method as the DOL loader uses: search for mfspr from HID4, @@ -30,8 +30,7 @@ bool CBoot::IsElfWii(const std::string& filename) u32 HID4_pattern = 0x7c13fba6; u32 HID4_mask = 0xfc1fffff; - ElfReader reader(mem); - bool isWii = false; + ElfReader reader(mem.data()); for (int i = 0; i < reader.GetNumSections(); ++i) { @@ -42,29 +41,27 @@ bool CBoot::IsElfWii(const std::string& filename) u32 word = Common::swap32(((u32*)reader.GetSectionDataPtr(i))[j]); if ((word & HID4_mask) == HID4_pattern) { - isWii = true; - break; + return true; } } } } - delete[] mem; - return isWii; + return false; } bool CBoot::Boot_ELF(const std::string& filename) { const u64 filesize = File::GetSize(filename); - u8 *mem = new u8[(size_t)filesize]; + std::vector mem((size_t)filesize); { File::IOFile f(filename, "rb"); - f.ReadBytes(mem, (size_t)filesize); + f.ReadBytes(mem.data(), (size_t)filesize); } - ElfReader reader(mem); + ElfReader reader(mem.data()); reader.LoadInto(0x80000000); if (!reader.LoadSymbols()) { @@ -77,7 +74,6 @@ bool CBoot::Boot_ELF(const std::string& filename) } PC = reader.GetEntryPoint(); - delete[] mem; return true; }